使用hive、tez和offset执行查询

6ojccjat  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(1108)

我试图在配置单元中执行偏移量查询,在该配置单元中我试图排除特定记录,但总是出现以下错误:
查询:

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
0g0grzrc

0g0grzrc1#

您可以将offset子句与limit子句一起包含,以生成分页结果集,如11-20。始终将此子句与order by(以便明确哪个项应为first、second等)和limit(以便结果集覆盖有界范围,例如项0-9、100-199等)结合使用。

uklbhaso

uklbhaso2#

不清楚为什么要标记mysql,但是 OFFSET 不作为hiveql select语法的一部分存在。
https://cwiki.apache.org/confluence/display/hive/languagemanual+select

相关问题