标签:hive

Hive: 解析order by、sort by、distributed by 、cluster by区别

207 views

Hive中,order by、sort by 和 distributed by 分别代表三种不同的排序方法,虽然都是排序,但是它们的功能是不一样的。

简单来说,`order by`的功能和在SQL中的功能是一样的,对每一条数据根据特定属性进行排序。而`sort by`则是在reduce内部对每个数据根据特定属性进行排序。`distributed by`则有点类似于mapreduce的分区,对于同一个属性字段的会交给同一个reduce。`cluster by`则就相当于对同一个字段同时进行`distributed by`和`sort by`。需要注意的是`distributed by`要放在`sort by`前面,因为前者运行在shuffle阶段,而后者运行在reduce处理阶段。

继续阅读