有些ETL工作需要读取json,如:
[{"f1":1, "f2":2}, {"f1":10, "f2":20}, {"f1":4, "f2":8}]
[{"f1":3, "f2":5}]
[{"f1":7, "f2":9}, {"f1":111, "f2":2}]
每行输入文件都是一个json列表
但是,schema
的{{1}}必须是StructType。
如何在没有StructField的情况下将这种json列表读取到具有指定spark.read.json
的DataFrame?
答案 0 :(得分:1)
看起来你可以这样做:
spark.read
.json("src/test/resources/test.json")
.show()
打印:
+---+---+
| f1| f2|
+---+---+
| 1| 2|
| 10| 20|
| 4| 8|
| 3| 5|
| 7| 9|
|111| 2|
+---+---+
spark推导出的架构是:
println(spark.read.json("src/test/resources/test.json").schema)
> StructType(StructField(f1,LongType,true), StructField(f2,LongType,true))