2016-05-11 3 views
1

Операции, такие как dataframe.show(), sQLContext.read.json, работают нормально, но большинство функций дает «объект JavaPackage не вызываемая ошибка». например: когда я делаюОбъект JavaPackage не является вызываемой ошибкой: Pyspark

dataFrame.withColumn(field_name, monotonically_increasing_id()) 

Я получаю сообщение об ошибке

File "/tmp/spark-cd423f35-9572-45ee-b159-1b2732afa2a6/userFiles-3a6e1729-95f4-468b-914c-c706369bf2a6/Transformations.py", line 64, in add_id_column 
    self.dataFrame = self.dataFrame.withColumn(field_name, monotonically_increasing_id()) 
    File "/home/himaprasoon/apps/spark-1.6.0-bin-hadoop2.6/python/pyspark/sql/functions.py", line 347, in monotonically_increasing_id 
    return Column(sc._jvm.functions.monotonically_increasing_id()) 
TypeError: 'JavaPackage' object is not callable 

Я использую интерпретатор апач-ZEPPELIN и добавил py4j к пути питона.

Когда я

import py4j 
print(dir(py4j)) 

импорт успешно

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'compat', 'finalizer', 'java_collections', 'java_gateway', 'protocol', 'version'] 

Когда я попытался

print(sc._jvm.functions) 

в pyspark оболочки печатает

<py4j.java_gateway.JavaClass object at 0x7fdaf9727ba8> 

Но когда я пытаюсь это в моем интерпретатор печатает

<py4j.java_gateway.JavaPackage object at 0x7f07cc3f77f0> 
+0

на самом деле это тоже должно работать, но что-то не так с вашим conf. – eliasah

+0

У вашего водителя и рабочего есть такая же версия python? – eliasah

+0

Ya. Я работаю локально, и у моего драйвера и рабочего есть такая же версия python – Himaprasoon

ответ

1

В ZEPPELIN код интерпретатора

java_import(gateway.jvm, "org.apache.spark.sql.*") 

не получал казнены. Добавив это к импортированному исправлению, проблема

Смежные вопросы