我正在生成一个DataSet<Person>
像这样:
DataSet<Person> personDs = sparkSession.read().json("people.json").as(Encoders.bean(Person.class));
哪里Person
是
class Person {
private String name;
private String placeOfBirth;
//Getters and setters
...
}
如果我的输入数据仅包含名称 ( {"name" : "bob"}
),则会收到错误 org.apache.spark.sql.AnalysisException: cannot resolve 'placeOfBirth' given input columns: [name]
.
我有什么办法可以告诉 Spark placeOfBirth
(或任何其他字段)可以是 null
?
最佳答案
在 Spark 2.3.0 和 Scala 2.11.12 中,该代码对我有用:
sparkSession.read.schema("name String, placeOfBirth String").json("people.json").as(Encoders.bean(classOf[Person])).show()
输出:
+----+------------+
|name|placeOfBirth|
+----+------------+
| bob| null|
+----+------------+
关于java - 显式指定用于读取 JSON 的架构并将缺失的字段标记为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50254423/