我正在尝试在PySpark中运行自定义HDFS阅读器类。这个类是用Java编写的,我需要从PySpark或从shell或通过spark-submit访问它。
在PySpark中,我从SparkContext(sc._gateway)中检索JavaGateway 。
说我有一堂课:
package org.foo.module
public class Foo {
public int fooMethod() {
return 1;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图将其打包到一个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()
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误:
Py4JError: Trying to call a package.
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?谢谢。