分享

Hive实现分页的思路与方法

阿飞 2014-9-4 15:48:02 发表于 小知识点 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 91489
问题导读:
1.hive是通过什么函数来分页的?
2.本文hive分页的方法是什么?





hive没有像MySQL那样的limit start,end那样的写法实现分页,所以需要使用别的方式来实现分页。

如果分页的表有唯一标识的字段

可以通过这个字段来实现分页:

获取第一页数据:

select  * from table order by id asc limit 10;//同时需要记录这10条中最大的id为preId,作为下一页的条件。

获取第二页数据:

select * from table where id >preId order by id asc limit 10;//同时保存数据中最大的id替换preId。

如果分页的表没有唯一标识的字段

可以通过row number()函数来实现分页:

首先使用row number()函数来给这个表做个递增的唯一标识:

create table newtable as select row number(1)  as id ,* from table;

通过row number函数给表加了唯一标识之后,就可以利用第一个方法来进行分页。



已有(5)人评论

跳转到指定楼层
wubaozhou 发表于 2015-1-1 17:56:17
回复

使用道具 举报

feng01301218 发表于 2015-3-14 15:43:36
回复

使用道具 举报

lzm 发表于 2016-12-8 16:16:43
排序字段不固定呢,有什么好办法,建临时表的方式好不现实呢,表的数据量也蛮大的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条