MR 分组
一、过程
1、进行排序(自定义Hadoop序列化)
2、进行分组
二、语法
1、自定义分组,继承WritableComparator
2、创建无参构造参数
目的:将比较对象的类传给父类
super(GroupBean.class, true);
注意:
a、GroupBean.class是Hadoop自定义序列化和排序,实现 WritableComparable
b、第二个值,必须为 true
3、重写compare()方法,用于写业务逻辑
a、形参
public int compare(WritableComparable a, WritableComparable b) {}
b、compare()
主要逻辑 a和b做比较 或 对象 a中的属性和对象 b的属性 做比较,因此a和b需要强制类型转换(排序类)
若 a 大于 b ,则返回1, 若 a < b,则返回-1,若a=b,则返回0
c、在Driver中设置job的驱动类
job.setGroupingComparatorClass(GroupCompare.class);
GroupCompare.class 为分组类