mysql - 如何在 Hive 中选择键以前缀开头的某些行?

标签 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 条记录。

有什么帮助吗?

非常感谢!

最佳答案

根据@musafir-safwan 的要求,我已将其添加为此处的答案。

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

感谢评论员的关注。

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

问题是由于糟糕的 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 作业,因此没有超时限制,然后它返回我想要的结果。

YMMV.

谢谢。

关于mysql - 如何在 Hive 中选择键以前缀开头的某些行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45684183/

相关文章:

REGEXP_REPLACE 捕获组

java - 来自 hbase/文件系统的 hadoop namenode 连接中的 EOF 异常是什么意思?

join - Hive:解决非等左连接

hadoop - 带偏移量的 Hbase 扫描

mysql - 如何通过终端在mysql中连续上传文件的全文

mysql - mySQL 中的嵌套选择语句

java - 使用 Hibernate 将图像保存在数据库中

hadoop - Hive/Beeline,如何设置作业.staging目录?

Hive:regexp_replace 方括号

mySQL 检查列