我在 java 中有一个类,可以构建一些复杂的 Spark DataFrame。
package companyX;
class DFBuilder {
public DataFrame build() {
...
return dataframe;
}
}
我将这个类添加到 pyspark/jupiter 类路径中,以便它可以被 py4j 调用。现在当我调用它时,我会得到奇怪的类型:
b = sc._jvm.companyX.DFBuilder()
print(type(b.build()))
#prints: py4j.java_gateway.JavaObject
VS
print(type(sc.parallelize([]).toDF()))
#prints: pyspark.sql.dataframe.DataFrame
有没有办法将此 JavaObject 转换为正确的 pyspark 数据帧?我遇到的一个问题是,当我想在 java 中构建的 DataFrame 上调用 df.show() 时,它会打印在 spark 日志中,而不是在笔记本单元格中。