【发布时间】:2018-09-09 04:45:22
【问题描述】:
我正在读取 json 多行 json 文件包含 60 多个字段,只需要 30 个字段作为列,我如何从数据框中获取所需的列数据。
scala> peopleDF.printSchema
root
|-- Applications: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- b_als_o_isehp: boolean (nullable = true)
| | |-- b_als_p_isehp: boolean (nullable = true)
| | |-- b_als_s_isehp: boolean (nullable = true)
| | |-- l_als_o_eventid: long (nullable = true)
| | |-- l_als_o_pid: long (nullable = true)
| | |-- l_als_o_sid: long (nullable = true)
如何仅获取所需的列。(如 l_als_o_pid、l_als_o_eventid、b_als_o_isehp)。
val peopleDF = spark.read.json("file:///root/users/inputjsondata/s_json2.json")
var ss = peopleDF.select("Applications");
ss.createOrReplaceTempView("result2")
val child = ss.select(explode(peopleDF("Applications.t_als_s_path"))).toDF("app").show()
【问题讨论】:
标签: json scala apache-spark dataframe dataset