我正在读一些json,来自:
{"a": [{"b": {"c": 1, "d": 2}}]}
也就是说,数组项是不必要的嵌套。现在,因为这发生在数组中,所以在如何展平sparkDataframe中的结构中给出的答案是什么?不要直接申请。
这是Dataframe在解析时的外观:
root
|-- a: array
| |-- element: struct
| | |-- b: struct
| | | |-- c: integer
| | | |-- d: integer
我希望将Dataframe转换为:
root
|-- a: array
| |-- element: struct
| | |-- b_c: integer
| | |-- b_d: integer
如何对数组中的列进行别名处理以有效地取消对它的声明?
2条答案
按热度按时间krugob8w1#
你可以用
transform
:xfb7svmp2#
使用已接受答案中提供的方法,我编写了一个递归取消对Dataframe的嵌套的函数(也递归到嵌套的数组中):