我来自 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))
我可以看到 SparkDataFrame 的 FromStation 列在每一行中都有这样的形式:
list("{\"Code\":\"ABCDE\",\"Name\":\"StationA\"}", "{\"Code\":\"WXYZP\",\"Name\":\"StationB\"}", "{...
其中 ... 表示模式重复未知次数。
我的问题
如何提取此信息并将其放入平面数据框中?理想情况下,我想为嵌套数组列中的每个观察创建一个FromStationCode
和FromStationName
列。我尝试了explode
和getItem
...的各种组合,但无济于事。我不断收到数据类型不匹配错误。我在 Spark 中搜索过其他人的例子,但 SparkR 的例子更稀缺。我希望有更多使用 Spark/SparkR 经验的人可以提供一些见解。
非常感谢,内特