布尔值和嵌套bean的spark中的空指针异常

时间:2017-02-27 11:09:23

标签: java apache-spark apache-spark-dataset

我正在尝试为bean类构建一个spark数据集,它有一个字段,它本身就是一个bean和一个布尔字段,但是这样做时我得到一个空指针异常。如果我对第二个字段使用double而不是boolean,则空指针异常消失。

以下是cope片段:

SparkSession  spark = SparkSession.builder().appName("Test").getOrCreate();
Encoder<cR> cREncoder = Encoders.bean(cR.class);

cR cR1 = new cR (4.5, new c("abc"));
cR cR2 = new  cR(5.5, new c("xyz"));
List<cR > listcR = Arrays.asList (cR1,cR2);

Dataset<cR > cRData= spark.createDataset(listcR,cREncoder);
System.out.println ("Duration in Main " + cR1.getDuration());
System.out.println ("Duration in Main " + cR2.getDuration());
cRData.printSchema();
cRData.show();

public class cR implements java.io.Serializable {
    public double duration;
//    public Boolean version;
    public c _c;

    public cR (double v, c cu) {
      this.duration = v;
      this._c = cu;
//      this.version = ver;
        System.out.println("Duration : " + this.duration);
    }

// getter setter methods for data member
}

public class c implements java.io.Serializable {
    public String id;

    public c (String s) {
      id= s;
    }

//getter and setters

}

1 个答案:

答案 0 :(得分:0)

看起来现有的Spark问题已存在很长时间。解决方法是将bean类中的所有布尔值替换为布尔值。