我试图在配置单元中执行偏移量查询,在该配置单元中我试图排除特定记录,但总是出现以下错误:
查询:
select * from sample order by id limit 1 OFFSET 1;
错误:
FAILED: ParseException line 1:41 missing EOF at 'OFFSET' near '1'
我尝试删除表并按照so post的建议再次创建它,但仍然得到相同的错误。我也已经准备好了 TEZ engine
在配置单元中,可以更快地处理数据,但上面的查询会启动map reduce作业。
为什么会这样?当我执行另一个查询时,它会给我直接的结果 via TEZ engine
.
有谁能解释我这种奇怪的行为,以及在解决我的问题?
环境:
1) Cloudera 5.12
2) Hive 1.1.0-cdh5.12.0
2条答案
按热度按时间0g0grzrc1#
您可以将offset子句与limit子句一起包含,以生成分页结果集,如11-20。始终将此子句与order by(以便明确哪个项应为first、second等)和limit(以便结果集覆盖有界范围,例如项0-9、100-199等)结合使用。
uklbhaso2#
不清楚为什么要标记mysql,但是
OFFSET
不作为hiveql select语法的一部分存在。https://cwiki.apache.org/confluence/display/hive/languagemanual+select