Why does the following generate a NPE?
final SparkSession spark = SparkSession.builder()
.appName(" test")
.getOrCreate();
spark.createDataFrame(singletonList(new GenericRow(new Object[] { 1L, null, 3L })),
new StructType(new StructField[] { DataTypes.createStructField("value1", DataTypes.LongType, true),
DataTypes.createStructField("value2", DataTypes.LongType, true),
DataTypes.createStructField("value3", DataTypes.LongType, true)}))
.foreach((ForeachFunction<Row>) row -> {
System.out.println("###" + row.getAs("value1"));
System.out.println(row.<Long>getAs("value2"));
System.out.println(toBytes(row.<Long>getAs("value2")));
System.out.println("###" + row.getAs("value3"));
});
I think this does not occur in Spark 1.6, but unsure, could just be better test data.