1、order by 会对输入做全局排序,因此只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。
2、sort by不是全局排序,其在数据进入reducer前完成排序。因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1,则sort by只保证每个reducer的输出有序,不保证全局有序。
3、distribute by(字段)根据指定的字段将数据分到不同的reducer,且分发算法是hash散列。
4、Cluster by(字段) 除了具有Distribute by的功能外,还会对该字段进行排序。
因此,如果分桶和sort字段是同一个时,此时,cluster by = distribute by + sort by
分桶之前 先进行分桶设置
创建一个表,该表显示分四个区并每个区局部排序
创建第二个表,并导入数据
先排序查询,
在进行分桶插入,先从其他的表中查出来然后在插入这个表中
打开浏览器查看 是否已经分区
查看分区之后的数据