1.背景
hive中有一个store表,字段分别是"商店所属人标识"(merid),“商户余额(money)”,“商店名称(name)”。求每个法人下属的商店的余额按照降序排序。
//merid,money,name
B 10 store_B_4
A 12 store_A_1
A 14 store_A_2
B 15 store_B_1
B 19 store_B_2
B 30 store_B_3
2.distribute by、sort by
hive中(distribute by + “表中字段”)关键字控制map输出结果的分发,相同字段的map输出会发到一个reduce节点去处理。sort by为每一个reducer产生一个排序文件,他俩一般情况下会结合使用。
hive> select * from store distribute by merid sort by money desc;
3.cluster by
cluster by 相当于 distribute by 和sort by 的结合,默认只能是升序,以下两种写法查询结果相同
//cluster by
hive>select * from store cluster by merid;
//distribute by,sort by
hive>select * from store distribute by merid sort by merid asc;