hive的四个排序方法
一、 order by
order by 是要对输出的结果进行全局排序,这就意味着只有一个reduce task时才能实现(多个reducer无法保证全局有序)但是当数据量过大的时候,效率就很低,速度会很慢。可以指定升序asc 降序desc
二、sort by
sort by 不是全局排序,只保证了每个reduce task中数据按照指定字段和排序方式有序排列,是局部排序。排序列必须出现在select column列表中,reduce task 的数量可以通过 set mapred.reduce.tasks=[num] 来设置,当reducer task数量设置为1时,相当于order by排序
ps:一般不单独使用
三、distribute by
distribute by 指的是按照指定的字段进行划分,将数据分到不同的输出reduce task中,通常与s