order by
会对输入做全局排序
,因此只有1个reducer(多个reducer无法保证全局有序),会导致当输入规模较大时,需要较长的计算时间。
sort by
不是全局排序,其在数据进入 reducer 前完成排序。
因此,如果用 sort by 进行排序,并且设置 mapred.reduce.tasks>1
, 则 sort by 只保证每个 reducer 的输出有序,不保证全局有序
。
我们下期见,拜拜!
order by
会对输入做全局排序
,因此只有1个reducer(多个reducer无法保证全局有序),会导致当输入规模较大时,需要较长的计算时间。
sort by
不是全局排序,其在数据进入 reducer 前完成排序。
因此,如果用 sort by 进行排序,并且设置 mapred.reduce.tasks>1
, 则 sort by 只保证每个 reducer 的输出有序,不保证全局有序
。
我们下期见,拜拜!