【问题标题】:Pivot map into column in Hive将地图透视到 Hive 中的列
【发布时间】:2016-10-31 21:24:42
【问题描述】:

我正在寻找一种方法,将 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

你们中的任何人有解决方案或知道是否可行吗?

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    如果您想动态地将数据放在 Hive 中的列中,您通常会很不走运。

    如果您绝对想动态执行此操作,可以使用外部工具(如 python)执行以下操作:

    1. 使用 python 确定您需要哪些键,并使用相关键创建表
    2. 解析每一行并在相关列中插入数据

    【讨论】:

    • 这就是我所害怕的,但我想确定一下。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 2021-12-27
    • 2013-07-29
    • 2021-01-21
    相关资源
    最近更新 更多