我如何 select 键在 Hive 中以前缀开头的某些行?
How can I select certain rows that the key starts with a prefix in Hive?
一个很简单的问题:
我想 select 其键在 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 编辑器只是挂在那里,没有返回任何内容。
我已经通过以下查询检查了这个时间范围,我的 table 中有数据:
select * from solr_json_history where dt='20170814' and hour='2147' limit 15;
它按预期返回了 15 条记录。
有什么帮助吗?
非常感谢!
应@musafir-safwan 的要求,我已将其添加为此处的答案。
更新:
我无法提供示例数据。但是我的问题已经解决了。
感谢评论员的关注
我的table确实有数据,不用担心。感谢您检查。
问题是由于 Hue UI 设计不当,当我发出以上两个查询时,获得响应的时间太长(比 UI 上设置的超时时间长)返回,很简单,UI 不回复任何内容,或给出超时提醒。它只是挂在那里。
此外,这两个查询实质上进行了两次 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 作业,因此没有超时限制,然后它 returns 我想要的结果。
YMMV.
谢谢。
一个很简单的问题:
我想 select 其键在 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 编辑器只是挂在那里,没有返回任何内容。
我已经通过以下查询检查了这个时间范围,我的 table 中有数据:
select * from solr_json_history where dt='20170814' and hour='2147' limit 15;
它按预期返回了 15 条记录。
有什么帮助吗?
非常感谢!
应@musafir-safwan 的要求,我已将其添加为此处的答案。
更新: 我无法提供示例数据。但是我的问题已经解决了。
感谢评论员的关注
我的table确实有数据,不用担心。感谢您检查。
问题是由于 Hue UI 设计不当,当我发出以上两个查询时,获得响应的时间太长(比 UI 上设置的超时时间长)返回,很简单,UI 不回复任何内容,或给出超时提醒。它只是挂在那里。
此外,这两个查询实质上进行了两次 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 作业,因此没有超时限制,然后它 returns 我想要的结果。
YMMV.
谢谢。