我在Spark网站,SO或Google上都没有找到任何内容。 我有一个服务设置并获取由另一个类创建的数据集,即
public class MainFrameServiceImpl implements MainFrameService {
private Dataset<Row> queryDF = null;
public MainFrameServiceImpl() {
//this.queryDF <--need to instantiate this
}
public void setDataset(Dataset<Row> queryDF) {
this.queryDF = queryDF;
}
public Dataset<Row> getDataset() {
return this.queryDF;
}
}
但我确实无法返回数据集,除非它被实例化。当我尝试,我知道不应该工作,我得到错误
at org.apache.spark.serializer.SerializationDebugger $ SerializationDebugger.visitSerializable(SerializationDebugger.scala:189) 在 org.apache.spark.serializer.SerializationDebugger $ SerializationDebugger.visit(SerializationDebugger.scala:108)
基本上,我想在不同的类之间传递数据集并对它们进行GUI操作。 如果有另一种方式来传递信息而不会产生懒惰评估的火花,我会对所有建议持开放态度。
我尝试在服务中创建一个读取传递的数据集并实例化类Dataset的方法,但这不起作用。 例如:
public void setDatasetStruct(Dataset<Row> queryDF) {
ExpressionEncoder<Row> encoder = RowEncoder.apply(queryDF.schema());
this.queryDF = new Dataset<Row>(SparkManager.getSession(), queryDF.queryExecution().logical(), encoder);
setDataset(queryDF);
}
public void setDataset(Dataset<Row> queryDF) {
this.queryDF = queryDF;
}