开发者社区> 问答> 正文

请教大家:Hive中sort by 分区内排序如何得到全局排序结果的问题?谢谢了

在hive里,有一个表(上亿级别)含有timestamp,需要根据timestamp求最近时间的top10记录,使用select * from table sort by timestamp desc limit 10可以实现。 有个地方不太清楚:sort by 在每个reducer中进行分区内排序,结果并不是全局有序的,但是加上limit后可以取到全局topn的值,这一步是怎么做的?原理是怎样的?有哪位能告知一下?

展开
收起
游客nt57twjsuxstc 2019-11-08 21:09:06 1370 0
1 条回答
写回答
取消 提交回答
  • 目前从事大数据开发,兼顾平台搭建以及实时数据分析,主要是用scala编写程序,涉及社区开源hadoop集群,emr集群,欢迎有相同兴趣的小伙伴来交流,共同进步。最近在参与flink-java实时开发。

    简单点理解就是分两步去做,首先在每个reduce内部做局部排序,取到每个reduce内部的top10,然后在所有的reduce中做全局排序,找到全局的top10,最终实现全局limit 10.

    2019-11-13 13:09:40
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hive Bucketing in Apache Spark 立即下载
spark替代HIVE实现ETL作业 立即下载
2019大数据技术公开课第五季—Hive迁移到MaxCompute最佳实践 立即下载