在Hive中,有四个BY比较:Order By、Sort By、Distribute By和Cluster By。
-
Order By是全局排序,只有一个Reducer。它可以按照升序(ASC)或降序(DESC)对结果进行排序。Order By子句通常用在SELECT语句的结尾。
-
Sort By是对每个Reducer内部的数据进行排序。它不保证全局排序,但可以在每个Reducer内部对结果进行排序。
-
Distribute By是用于对Reducer的数据进行分发。它指定了数据的分发方式,但不保证排序。
-
Cluster By是对数据进行排序和分发,相当于同时使用了Sort By和Distribute By。
因此,Order By是全局排序,Sort By是Reducer内部排序,Distribute By是数据分发,而Cluster By是排序和分发的组合操作。