两个是完全不同的东西,group by的后续需要我们对数据进行聚合,distribute by只是把数据分到不同的reducer中去。
distribute by与group by 的区别
都是按key值划分数据 都使用reduce操作
唯一不同的是,distribute by只是单纯的分散数据,distribute by col -- 按照col列把数据分散到不同的reduce。而group by把相同key的数据聚集到一起,后续必须是聚合操作。
order by与sort by 的区别
order by是全局排序 sort by只是确保每个reduce上面输出的数据有序。如果只有一个reduce时,和order by作用一样。
cluster by
把有相同值的数据聚集到一起,并排序,效果等价于distribute by col sort by col.
即 cluster by col <==> distribute by col sort by col