(1)order by是将所有数据放在一个reduce里面进行排序,当数据量大时,会出现内存溢出的问题,同时数据排序效率低。
另外,可以在sort by后面加上limit n来实现top n操作。
(2)sort by是将数据放到多个reduce里面进行排序,排序后每一个reduce里面的数据是有序的,但是全部数据不一定有序。
如果reduce个数为1,此时全部数据有序,等价于order by操作。
当需要对全部数据排序时:
(a)直接使用order by进行全局排序,效率低下。
(b)可以先使用sort by局部排序(sort by可以设置reduce个数),然后再使用order by排序,将会大大提高效率。
<