繁体   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