2017-08-14 71 views
1

一个非常简单的问题:如何选择密钥以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; 

我的顺化编辑器只是挂在那儿不返回任何东西。

我已经通过这个查询检查该时间范围内有数据在我的表:

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

它返回15条记录符合市场预期。

请帮忙吗?

非常感谢!

+0

可以提供一些示例数据 –

+0

如果您可以提供数据示例以及如何创建表 – hlagos

+0

也许没有100行具有该前缀,那么配置单元会遍历所有分区/表可能很慢。尝试限制1 –

回答

1

根据@ musafir-safwan的要求,我在此添加了它作为答案。

更新: 我无法提供示例数据。但我的问题解决了。

感谢您的评论注意。

我的表确实有数据,不需要担心。感谢您检查。

问题是由于Hue UI设计错误,当我发出上述两个查询时,它需要太长的时间(超过UI上设置的超时时间)才能获得响应,简而言之,UI不会“ 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(*)果然此查询到的地图,减少工作的事情,因此没有超时限制,然后返回我想要的结果。

YMMV。

谢谢。

相关问题