如何将自定义 Java class 转换为 Spark 数据集
How can I convert a custom Java class to a Spark Dataset
我想不出在 Spark 中将测试对象列表转换为数据集的方法
这是我的 class:
public class Test {
public String a;
public String b;
public Test(String a, String b){
this.a = a;
this.b = b;
}
public List getList(){
List l = new ArrayList();
l.add(this.a);
l.add(this.b);
return l;
}
}
您在评论中创建 DataFrame 的代码是正确的。但是,您定义 Test
的方式有问题。您只能使用 Java Beans 中的代码创建 DataFrame。你的 Test
class 不是 Java Bean。修复该问题后,您可以使用以下代码创建 DataFrame:
Dataset<Row> dataFrame = spark.createDataFrame(listOfTestClasses, Test.class);
和这些行来创建类型化数据集:
Encoder<Test> encoder = Encoders.bean(Test.class);
Dataset<Test> dataset = spark.createDataset(listOfTestClasses, encoder);
我想不出在 Spark 中将测试对象列表转换为数据集的方法 这是我的 class:
public class Test {
public String a;
public String b;
public Test(String a, String b){
this.a = a;
this.b = b;
}
public List getList(){
List l = new ArrayList();
l.add(this.a);
l.add(this.b);
return l;
}
}
您在评论中创建 DataFrame 的代码是正确的。但是,您定义 Test
的方式有问题。您只能使用 Java Beans 中的代码创建 DataFrame。你的 Test
class 不是 Java Bean。修复该问题后,您可以使用以下代码创建 DataFrame:
Dataset<Row> dataFrame = spark.createDataFrame(listOfTestClasses, Test.class);
和这些行来创建类型化数据集:
Encoder<Test> encoder = Encoders.bean(Test.class);
Dataset<Test> dataset = spark.createDataset(listOfTestClasses, encoder);