(1)Order By:对数据进行全局排序,并且只有一个 Reducer,不管我们对 Reducer 的数量如何设置,也只会有一个 Reducer 执行,因为全局排序只能在一个 Reducer 中执行。(注意:Order By 进行全局排序,所以效率低,在公司生产环境中一般运行不了,因为数据太大,然而只有一个 Reducer)
(2)Sort By:分区内有序,也就是每个 Reducer 内部进行排序,对全局结果集来说不是排序的。结果如下图类似:
(3)Distribute By:它的功能类似于 MR 中的 Partition,对数据进行分区,一般结合 Sort By 一起使用。用法如下:(先将数据分区,再将各个分区内的数据进行排序)
(4)Cluster By:当 Distribute by 和 Sorts by 字段相同时,可以使用 Cluster by 方式。Cluster by 除了具有 Distribute by 的功能外还兼具 Sort by 的功能。但是排序只能是升序排序,不能指定排序规则为 ASC 或者 DESC。(一般用的比较少,因为很少有字段相同的情况)