hive 中几个by的区别
group by:聚合函数分组,不排序。
注意: group by 的执行在select 之前。
having 在select 之后
order by:全局排序
sort by:局部排序(每个reducetask的结果中有序)
每一组是有序的,但全局不一定有序。
distribute by:分桶
有多个文件,全局排序,难度很高,所以采取分桶排序。
cluster by:分桶
如果distribute by后面的字段 和 sort by 后面的字段一致,则:
distribute by id sort by id = cluster by id
distribute by id,sort by id,name = cluster by id sort by name;
只能默认升序,不能使用倒序;