Hive-排序方式

Hive-排序方式

order by

会对查询的结果做一次全局排序

所有的数据都会发送到同一个reducer进行处理,不管有多少map,也不管文件有多少block块,只会启动一个reducer,因为多个reducer无法保证全局有序

优点

全局有序

缺点

对大量数据进行排序耗时会比较长

sort by

会根据数据量的大小启动多个reducer进行排序,会保证每个reducer内有序

优点

执行了局部排序之后可以为全局排序提高不少效率

缺点

局部有序,如果只有一个reducer,则效果和order by一样

distribute by

有些情况下,我们需要控制某个特定行应该到哪个reducer,通常是为了进行后续的聚集操作。

distribute by类似MRpartition(自定义分区),进行分区,结合sort by使用

distribute by的分区规则是根据分区字段的hash码与reducer的个数取模,相同的分到一个区

distribute by语句要写在sort by语句之前

cluster by

cluster bydistribute bysort by的结合

posted on 2020-12-27 20:21  嘣嘣嚓  阅读(150)  评论(0编辑  收藏  举报

导航