我想使用spark从嵌套的json中提取密钥。
我在JSON以下
{
"predicates": {
"API_No": "http://www.oilandgas.com/api_no",
"Facility_ID": "http://www.oilandgas.com/facility_id"
},
"prefixes": {
"API_No": "http://www.oilandgas.com/api_no/ ",
"Facility_ID": "http://www.oilandgas.com/facility_id/ "
},
"relations": {
"API_No": [
"Facility_ID",
"County"
]
},
"grahName": "http://www.oilandgas.com/data"
}
我在下面的代码中读了json
val df = spark.read.option("multiline", "true").json("path/to/above/json")
df.select(explode(array(col("relations")))).columns.foreach(println)
我想从数据框中获取“关系”中的“ API_No”键。
谢谢。
答案 0 :(得分:0)
要从数据帧中以relations
的形式获取API_No
中的密钥,您只需投影(选择)仅relations
密钥即可。由于relations
键的类型为struct
,因此通过投影可以得到所需的结果。如下所示:
df.select("relations.*").columns.foreach(println)
它将给出以下结果:
API_No
希望对您有帮助!