【发布时间】:2016-02-06 06:15:43
【问题描述】:
我正在尝试在 PySpark 中运行自定义 HDFS 阅读器类。这个类是用 Java 编写的,我需要从 PySpark 访问它,无论是从 shell 还是使用 spark-submit。
在 PySpark 中,我从 SparkContext (sc._gateway) 中检索 JavaGateway。
假设我有一堂课:
package org.foo.module
public class Foo {
public int fooMethod() {
return 1;
}
}
我尝试将其打包成一个 jar 并使用 --jar 选项将其传递给 pyspark,然后运行:
from py4j.java_gateway import java_import
jvm = sc._gateway.jvm
java_import(jvm, "org.foo.module.*")
foo = jvm.org.foo.module.Foo()
但我得到了错误:
Py4JError: Trying to call a package.
有人可以帮忙吗?谢谢。
【问题讨论】:
标签: java python apache-spark pyspark py4j