一:背景
Hadoop中虽然有自动排序和分组,由于自带的排序是按照Key进行排序的,有些时候,我们希望同时对Key和Value进行排序。自带的排序功能就无法满足我们了,还好Hadoop提供了一些组件可以让开发人员进行二次排序。
二:技术实现
我们先来看案例需求
#需求1: 首先按照第一列数字升序排列,当第一列数字相同时,第二列数字也升序排列(列之间用制表符\t隔开)
-
3 3
-
3 2
-
3 1
-
2 2
-
2 1
-
1 1
MapReduce计算之后的结果应该是:
-
1 1
-
2 1
-
2 2
-
3 1
-
3 2
-
3 3
#需求2:第一列不相等时,第一列按降序排列,当第一列相等时,第二列按升序排列
-
3 3
-
3 2
-
3 1
-
2 2
-
2 1
-
1 1
MapReduce计算之后的结果应该是:
-
3 1
-
3 2
-
3 3
-
2 1
-
2 2
-
1 1
<