distribute by 是控制map端在reduce上是如何区分的,distribute by会把相同的Keyf放到同一个reduce中。可以结合sort by 使用,distribute by必须要写在sort by之前,先进行分组reduce,再进行排序。
select mid, money, name from store distribute by mid sort by mid asc, money asc;
order by:是进行全局排序的,当数据量很大时候,效率会很慢。
sort by: 是局部排序,会在每个reduce端做排序,每个reduce端是排序的,也就是每个reduce输出的数据是有序的,但是整体不一定有序,除非只有一个reduce,一般情况下可以先进行局部排序完成后,再进行全局排序,会提高效率。



