如何选择密钥以Hive中的前缀开头的某些行?

时间:2017-08-14 22:52:29

标签: mysql hadoop hive hiveql hue

一个非常简单的问题:

我想在Hive中选择其键具有特定前缀的所有行,但不知何故它不起作用。

我尝试的查询:

select * from solr_json_history where dt='20170814' and hour='2147' and substr(`_root_`,1,9)='P10004232' limit 100;

SELECT * FROM solr_json_history where dt='20170814' and hour='2147' and `_root_` like 'P19746284%' limit 100; 

我的Hue编辑只是挂在那里而没有返回任何东西。

我已通过此查询检查了我的表格中此时间范围内的数据:

select * from solr_json_history where dt='20170814' and hour='2147' limit 15;

它按预期返回了15条记录。

请帮忙吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

根据@ musafir-safwan的要求,我已在此处添加了答案。

更新: 我无法提供样本数据。但我的问题得到了解决。

感谢评论员的关注。

我的表确实有数据,无需担心。谢谢你检查。

问题是由于Hue UI设计不好,当我发出上述两个查询时,需要花费太长时间(比UI上的设置超时时间长)才能获得回复,所以简单地说,UI不会#39 ; t回复任何内容,或给出超时提醒。它只是挂在那里。

此外,这两个查询基本上进行了两次RPC调用,因此它们超时了。 然后我改为使用以下查询:

select `_root_`,json, count(*) from solr_json_history where dt='20170814' and hour='2147' and substr(`_root_`,1,9)='P19746284' group by `_root_`,json;

不同之处在于我添加了一个count(*),它将此查询转换为map-reduce作业,因此没有超时限制,然后它返回我想要的结果。

因人而异。

感谢。