我在hive中有一个包含map列类型(text,int)的表。我想对该映射中的某些特定列应用一些计算。
例如:表x中的支持我有地图集合,我插入了int数据 id userid map(年龄:24,登录:12) id userid map(年龄:54,登录:13) 。 。 现在我想要用户的年龄> 15或用户登录ID的总和。
这有可能在hive查询中获得结果吗? 提前谢谢。
答案 0 :(得分:0)
您可以使用此查询执行此操作。让我们为你的地图命名为“user”
按年龄计算用户> 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)