标签:多少 情况下 cluster pre start 数据 等价 bsp hive
在每个reducer端都会做排序,保证了局部有序(每个reducer出来的数据是有序的,但是不能保证所有的数据是有序的,除非只有一个reducer)
好处是:执行了局部排序之后可以为接下去的全局排序提高不少的效率(其实就是做一次归并排序就可以做到全局排序了)。
ditribute by是控制map的输出在reducer是如何划分的。
select mid, money, name from store distribute by mid sort by mid asc, money asc
我们所有的mid相同的数据会被送到同一个reducer去处理,这就是因为指定了distribute by mid,这样的话就可以统计出每个商户中各个商店盈利的排序了(这个肯定是全局有序的,因为相同的商户会放到同一个reducer去处理)。这里需要注意的是distribute by必须要写在sort by之前。
cluster by的功能就是distribute by和sort by相结合,如下2个语句是等价的:
CLUSTERED BY子句指定要用于存储的列以及要创建的存储桶数
hive order by sort by distribute by和sort by一起使用 cluster by
标签:多少 情况下 cluster pre start 数据 等价 bsp hive
原文地址:https://www.cnblogs.com/huiandong/p/10237737.html