如何使用scala从JSON文件中选择子标记

时间:2017-11-21 16:24:33

标签: scala

美好的一天!!

我正在编写一个Scala代码来从json文件中选择多个子标记但是我没有得到确切的解决方案。代码如下所示,

代码:

val spark = SparkSession.builder.master("local").appName("").config("spark.sql.warehouse.dir", "C:/temp").getOrCreate()

val df = spark.read.option("header", "true").json("C:/Users/Desktop/data.json").select("type", "city", "id","name")

println(df.show())

Data.json

{"claims":[
      { "type":"Part B",
        "city":"Chennai",
            "subscriber":[
                { "id":11 },
                { "name":"Harvey" }
             ] },
      { "type":"Part D",
        "city":"Bangalore",
            "subscriber":[
                { "id":12 },
                { "name":"andrew" }
        ] } ]}

预期结果:

type    city         subscriber/0/id      subscriber/1/name
Part B  Chennai         11                  Harvey
Part D  Bangalore       12                  Andrew

请帮我处理上述代码。

1 个答案:

答案 0 :(得分:0)

如果我没有弄错的话,Apache Spark希望每一行都是一个单独的JSON对象,所以如果你试图加载一个非常格式化的JSON文件,它将会失败。

https://spark.apache.org/docs/latest/sql-programming-guide.html#json-datasets http://jsonlines.org/examples/