我有一个带有一个结构类型列的数据框。示例数据框架构是:
root
|-- Data: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- name: string (nullable = true)
| | |-- value: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
字段name保存列名,字段value保存列值。列中的元素数量Data未定义,因此可能会有所不同。我需要解析该数据并摆脱嵌套结构。(在这种情况下数组Explode将不起作用,因为一行中的数据属于一个元素)。真正的模式要大得多,并且具有多个数组字段(例如“数据”),因此我的目标是创建一个通用解决方案,我将将该解决方案应用于类似的结构数组。例子:
样本数据:
val data = Seq(
"""{"Data": [{ "name": "FName", "value": "Alex" }, { "name": "LName", "value": "Strong" }]}""",
"""{"Data": [{ "name": "FName", "value": "Robert " }, { "name": "MName", "value": "Nesta " }]} { "name": "LName", "value": "Marley" }]}"""
) …Run Code Online (Sandbox Code Playgroud)