(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。(一般用的比较少,因为很少有字段相同的情况)