首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaPackage对象不可调用错误: Pyspark

JavaPackage对象不可调用错误: Pyspark
EN

Stack Overflow用户
提问于 2016-05-11 13:37:27
回答 1查看 11.4K关注 0票数 2

像dataframe.show()、sQLContext.read.json这样的操作运行得很好,但大多数函数都会给出"JavaPackage object is not callable error“。例句:当我这样做时

代码语言:javascript
复制
dataFrame.withColumn(field_name, monotonically_increasing_id())

我得到一个错误

代码语言:javascript
复制
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

我正在使用apache-zeppelin解释器,并已将py4j添加到python路径中。

当我这样做的时候

代码语言:javascript
复制
import py4j
print(dir(py4j))

导入成功

代码语言:javascript
复制
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'compat', 'finalizer', 'java_collections', 'java_gateway', 'protocol', 'version']

当我试着

代码语言:javascript
复制
print(sc._jvm.functions)

在pyspark shell中打印

代码语言:javascript
复制
<py4j.java_gateway.JavaClass object at 0x7fdaf9727ba8>

但是当我在我的解释器中尝试时,它会打印出来

代码语言:javascript
复制
<py4j.java_gateway.JavaPackage object at 0x7f07cc3f77f0> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-17 19:18:54

在zeppelin解释器代码中

代码语言:javascript
复制
java_import(gateway.jvm, "org.apache.spark.sql.*")

不会被处死。将此添加到导入解决了此问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37153866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档