我需要在pyspark中将平面结构转换为嵌套结构类型输入看起来像-
root
|-- id: struct (nullable = true)
|-- name: string (nullable = true)
|-- created_at: timestamp (nullable = true)
字符串
我需要动态(在现实中有20多列)转换成下面的结构,也改变了datashees-
root
|-- payload: struct (nullable = true)
| |-- after: struct (nullable = true)
| | |-- id: long (nullable = true)
| | |-- name: string (nullable = true)
| | |-- created_at: long (nullable = true)
型
请注意-时间戳数据类型需要转换为长。
如何在pyspark中动态地做到这一点?
2条答案
按热度按时间oknwwptz1#
使用
struct
函数嵌套列。字符串
fzsnzjdm2#
基于@Srinivas的想法(使用struct创建嵌套结构),但动态地进行:
字符串
我们可以用下面的代码来测试这个函数:
型
输出应
型
尝试它与您的实际框架,并让我们知道,如果它的工作预期。