使用Hive,Tez和offset执行查询

时间:2017-12-16 08:07:10

标签: hadoop hive cloudera-cdh tez

我正在尝试在hive中执行偏移查询,我试图排除特定记录,但总是得到以下错误:

查询:

select * from sample order by id limit 1 OFFSET 1;  

错误:

FAILED: ParseException line 1:41 missing EOF at 'OFFSET' near '1'  

我尝试按照SO帖子中的建议再次删除表并创建它,但仍然得到相同的错误。此外,我已在蜂巢中设置TEZ engine以便更快地处理数据,但上述查询会启动地图减少作业 为什么会这样?当我执行另一个查询时,它会直接给我via TEZ engine 任何人都可以向我解释这种奇怪的行为,以及解决我的问题吗?

环境:

1) Cloudera 5.12  
2) Hive 1.1.0-cdh5.12.0  

2 个答案:

答案 0 :(得分:0)

不清楚为什么标记MySQL,但t3不存在作为HiveQL SELECT语法的一部分。

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Select

答案 1 :(得分:0)

您可以在OFFSET子句中包含LIMIT子句,以生成分页结果集,如11-20。 始终将此子句与ORDER BY结合使用(以便明确哪个项目应该是第一个,第二个,依此类推)和LIMIT(以便结果集覆盖有界范围,例如项目0-9,100-199等等)。