[英]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\"}", "{...
...表示模式重复的次数未知。
我的问题
如何提取此信息并将其放入平面数据框中? 理想情况下,我想为嵌套数组列中的每个观察结果创建一个FromStationCode
和FromStationName
列。 我尝试了explode
和getItem
各种组合...但无济于事。 我不断收到数据类型不匹配错误。 我在Spark中搜索了其他遇到此挑战的人的示例,但SparkR的示例更为稀缺。 我希望有更多使用Spark / SparkR经验的人可以提供一些见解。
非常感谢,天生
我想你需要将tst转换为普通的R对象
df = collect(tst)
然后您可以像其他R data一样使用df进行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.