簡體   English   中英

在Spark中解析嵌套的JSON列

[英]Parsing Nested JSON column in Spark

我有以下示例數據,作為數據框

id|data
1,{"a":["xyz","x"],"b":["abc","ab"]}
2,{"a":["zy","y"],"b":["ac","bc"]}

這是我的預期輸出:

id|details
1,abc
2,ac

這是我到目前為止所擁有的,

dataframe.withColumn("details",from_json($"data",StructType(Seq(StructField("b",ArrayType(StringType),true)))))

這是我現在得到的輸出

1,[abc,ab]
2,[ac,bc]

另外,這只是一個示例,我有100多個列,因此不能使用select子句。 想要使用withColumn解決此問題。

假設您想擁有b數組的第一個元素,根據已經計算出的details列,只需選擇b的第一個元素:

 dataframe.withColumn("details", expr("details.b[0]"))

您也可以直接在from_json的結果上使用getFieldgetItem函數

dataframe.withColumn("details",from_json($"data",StructType(Seq(StructField("b",ArrayType(StringType),true)))).getField("b").getItem(0))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM