1. 全局排序(Order By)
只有一个Reducer
如:
emp表按照部门和工资升序排序
select ename, deptno, sal from emp order by deptno, sal ;

2. 每个Reduce内部排序(Sort By)
对于大规模的数据集order by的效率非常低。在并不需要全局排序时,可使用sort by(desc降序 asc升序)。Sort by在每个Reducer内部进行排序,对全局结果集并非有序。
sort by通常与distribute by结合使用(distribute by 控制某个特定行到哪个reducer,类似MR中partition分区)
如:
employee表根据部门分区,按照员工编号排序
insert overwrite local directory '/home/hdfs/data/sortby' select * from employee e d

本文介绍了三种SQL排序方法:OrderBy实现全局排序,SortBy结合DistributeBy进行局部排序,ClusterBy简化相同字段的排序过程。通过具体示例展示了如何根据不同场景选择合适的排序策略。
最低0.47元/天 解锁文章
2052

被折叠的 条评论
为什么被折叠?



