有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何将自定义Java类转换为Spark数据集

我想不出在Spark中将测试对象列表转换为数据集的方法 这是我的班级:

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;
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您在注释中创建数据框的代码是正确的。但是,定义Test的方式存在问题。您只能使用Java bean中的代码创建数据帧。你的Test类不是Java Bean。修复后,可以使用以下代码创建数据帧:

    Dataset<Row> dataFrame = spark.createDataFrame(listOfTestClasses, Test.class);
    

    创建类型化数据集的以下几行代码:

    Encoder<Test> encoder = Encoders.bean(Test.class);
    Dataset<Test> dataset = spark.createDataset(listOfTestClasses, encoder);