小编hmo*_*rit的帖子

在PySpark中运行自定义Java类

我正在尝试在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)

有人可以帮忙吗?谢谢。

python java py4j apache-spark pyspark

5
推荐指数
2
解决办法
6687
查看次数

标签 统计

apache-spark ×1

java ×1

py4j ×1

pyspark ×1

python ×1