Hive中 Order by 和 Sort by 的区别是什么?
发布于 2022-09-21 08:58:59
关注者
0
被浏览
21
5 个回答
-
order by 是全局排序; sort by 需要与distribute结合着用,即分组排序。 例句如下: select \* from baidu\_click order by click desc; select \* from baidu\_click distribute by product\_line sort by click desc;
-
前者是只有一个reducer,对数据全局排序,后者是有多个reducer,在各自的reducer中排序,全局不排序。
-
一个是全局排序,相当于只有一个分区,后者指有多个分区,在自己分区内排序。
-
order by 会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。 sort by不是全局排序,其在数据进入reducer前完成排序. 因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1, 则sort by只保证每个reducer的输出有序,不保证全局有序。
-
order by全局排序,Sort by 局部排序