簡體   English   中英

SparkR,將一列嵌套的JSON字符串拆分為多個列

[英]SparkR, split a column of nested JSON strings into columns

我來自R,是SparkR的新手,並嘗試將JSON字符串的SparkDataFrame列拆分為相應的列。 Spark DataFrame中的列是具有以下架構的數組:

> printSchema(tst)
root
 |-- FromStation: array (nullable = true)
 |    |-- element: string (containsNull = true)
 |-- ToStation: array (nullable = true)
 |    |-- element: string (containsNull = true)

如果查看View(head(tst$FromStation))器中的數據View(head(tst$FromStation))我可以看到SparkDataFrame的FromStation列在每一行中都有這樣的形式:

list("{\"Code\":\"ABCDE\",\"Name\":\"StationA\"}", "{\"Code\":\"WXYZP\",\"Name\":\"StationB\"}", "{...

...表示模式重復的次數未知。

我的問題

如何提取此信息並將其放入平面數據框中? 理想情況下,我想為嵌套數組列中的每個觀察結果創建一個FromStationCodeFromStationName列。 我嘗試了explodegetItem各種組合...但無濟於事。 我不斷收到數據類型不匹配錯誤。 我在Spark中搜索了其他遇到此挑戰的人的示例,但SparkR的示例更為稀缺。 我希望有更多使用Spark / SparkR經驗的人可以提供一些見解。

非常感謝,天生

我想你需要將tst轉換為普通的R對象

df = collect(tst)

然后您可以像其他R data一樣使用df進行操作。

暫無
暫無

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

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