eg.
输入: 输出:
A 1 A 1
B 3 A 2
B 1 A 4
C 5 B 1
A 4 B 3
A 2 C 5
关键点
自定义,结合数据类型
作为map()函数输出key
自定义分区partition
按照第一个字段进行分区
自定义分组grouping
按照第一个子弹进行分组
文字整理
->将需要排序的字段封装成一个对象作为key,使用自定义数据类型可实现
->通过MapReduce自带shuffle阶段,对key的第一个字段和第二个字段分别进行排序
->由于shuffle中分区及分组默认按照key进行的,所以在分区和分组的时候,需要自定义分区和分组,实现按照key中的第一个字段进行分区和分组
->确保在分区阶段,第一个字段相同的key,有同一个reduce处理
->确保在分组阶段,第一个字段相同的key分到同一组吧