排序的区别

order by(全局排序)
对输入的数据做排序,故此只有一个reduce(多个reduce无法保证全局有序);
只有一个reduce,会导致当输入规模较大时,需要较长的计算时间。

sort by(非全局排序)
在数据进入reduce前完成排序;
当mapreduce.task>1时,只能保证每个reduce的输出有序,不能保证全局有序。

distribute by
按照指定的字段对数据进行划分输出到不同的reduce中;
常和sort by一起使用,并且distribute by必须在sort by前面。

cluster by
相当于distribute by + sort by,只能默认升序,不能使用倒序。

你可能感兴趣的:(排序的区别)