我正在尝试在 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.
有人可以帮忙吗?谢谢。