Json - 在 pyspark 中展平键和值
Posted
技术标签:
【中文标题】Json - 在 pyspark 中展平键和值【英文标题】:Json - Flatten Key and Values in pyspark 【发布时间】:2021-08-30 23:06:53 【问题描述】:在具有 JSON 列值的表中: "XXX": ["123","456"],"YYY": ["246","135"]
"XXX": ["123","456"],"YYY": ["246","135"], "ZZZ":["333","444"]
需要将其展平为
Key | Value |
---|---|
XXX | 123 |
XXX | 456 |
YYY | 246 |
YYY | 135 |
ZZZ | 333 |
ZZZ | 444 |
请给个建议..
选择 钥匙 , 价值 , 从表中,json_each(xref_json::json)
得到这个结果为,需要达到上述结果
Key | Value |
---|---|
XXX | ["123","456"] |
YYY | ["246","135"] |
【问题讨论】:
【参考方案1】:您为此使用横向连接:
SELECT x.key, y.elem
FROM mytable
CROSS JOIN LATERAL jsonb_each(mytable.xref_json::jsonb) AS x(key,value)
CROSS JOIN LATERAL jsonb_array_elements(x.value) AS y(elem)
WHERE x.key IN ('XXX', 'YYY');
【讨论】:
在一个 Hive 表中 JSON 列值为:"XXX": ["123","456"],"YYY": ["246","135"] 需要展平它使用 PYSPARK 如下 Key Value XXX 123 XXX 456 YYY 246 YYY 135 建议请.. 我不知道 Pyspark,抱歉。不能使用 SQL 语句吗? 感谢您的提问。在上面的 postgres sql 查询中,我需要添加过滤条件,只需要获取键 XXX 和 YYY。假设我们在 json 列中有很多键 "XXX": ["123","456"],"YYY": ["246","135"], "ZZZ":["333","444" ] * 只有键 XXX 和 YYY 以及它的值 添加WHERE
条件。 ***.com/help/someone-answers以上是关于Json - 在 pyspark 中展平键和值的主要内容,如果未能解决你的问题,请参考以下文章
如何在iOS swift的tableview中使用json响应中的键和值?