19
2021
01

order by,sort by,distribute by,cluster by的区别?

1.order by会对所给的全部数据进行全局排序 ,不管来多少数据,都只启动一个reducer来处理 。


2.sort by是局部排序 ,sort by会根据数据量的大小启动一到多个reducer来干活,并且,它会在进入reduce之前为每个reducer都产生一个排序文件 。


3.distribute by 控制map结果的分发,它会将具有相同字段的map输出分发到一个reduce节点上做处理 。


4.cluster by 可以理解为一个特殊的distribute by和sort by的结合,当distribute by和sort by后面所跟的列名相同时,就等同于直接使用cluster by 跟上该列名。但是被cluster by指定的列最终的排序结果只能是降序,而且无法指定asc和desc。


提示:这个问题面试问的频率很高,大家一定要注意区分以下。

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。