我正在寻找一种方法将Hive中的地图列表转换为多个列,并根据每个键动态插入值。
例如:
uid map
001 {"key1":1,"key2":2}
002 {"key1":3}
003 {"key2":4,"key3":5}
我想渲染:
uid key1 key2 key3
001 1 2
002 3
003 4 5
鉴于我拥有大量密钥,我希望能够这样做,而无需在查询中指定密钥,如
select uid,
map['key1'] as key1,
map['key2'] as key2,
map['key3'] as key3
from my table
你们有没有解决方案或知道是否可能?
答案 0 :(得分:1)
如果您动态想要将数据放在Hive中的列中,那么通常会运气不好。
如果您绝对想要动态执行此操作,可以使用外部工具(如python)执行此操作: