【发布时间】:2022-08-10 22:55:19
【问题描述】:
我有一个数据框:
\"abc\": array [
\"def\": struct {
\"id\": string,
\"value\": string
}
]
id 可以是 \"PHONE\"、\"FAX\" 和 \"MAIL\" 所以,这是一个示例:
| technical_id | column_to_explode |
|---|---|
| 1 | [[\"PHONE\", \"083665xxxx\"], [\"FAX\", \"0325xxxxxx\"]] |
| 2 | [[\"MAIL\", \"abc@xxx.com\"]] |
| 3 | null |
是否可以转换为:
| technical_id | column_to_explode | PHONE | FAX | |
|---|---|---|---|---|
| 1 | [[\"PHONE\", \"083665xxxx\"], [\"FAX\", \"0325xxxxxx\"]] | 083665xxxx | 0325xxxxxx | null |
| 2 | [[\"MAIL\", \"abc@xxx.com\"]] | null | null | abc@xxx.com |
| 3 | null | null | null | null |
我正在尝试爆炸,但它重复行,我宁愿避免这种情况。
谢谢。
-
那么,结构的第一个元素是预期的列名,第二个元素是它的值?
-
是的,将第一个元素转换为列标题,将第二个元素转换为值
-
你试过
explode然后pivot吗?喜欢this