【问题标题】:Can we query map collection using hive我们可以使用 hive 查询地图集合吗
【发布时间】:2014-11-06 16:05:36
【问题描述】:

我在 hive 中有一个具有映射列类型(text,int) 的表。我想对该映射中的某些特定列应用一些计算。

例如:支持表 x 我有地图集合,我已经插入了 int 数据 id userid map(年龄:24,登录:12) id userid map(年龄:54,登录:13) . . 现在我想要计算年龄>15 的用户或用户登录 ID 的总和。

这是否有可能在 hive 查询中获得结果?如何获得? 提前致谢。

【问题讨论】:

    标签: hadoop cassandra hiveql datastax-enterprise


    【解决方案1】:

    你可以用这个查询来做到这一点。让我们将您的地图命名为“用户”

    统计年龄 > 15 岁的用户

    hive> select count(*) from x where user['age'] > 15;
    

    否则让总登录数

    hive> select sum(user['login']) from x where user['age'] < 16;
    

    如果您需要将值转换为 int,请使用:

    cast(user['age'] as int)
    

    【讨论】:

    • 谢谢,我也想加入两个两个表并聚合地图中的列。
    • 这是否记录在公开的地方?
    猜你喜欢
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多