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 为分组类

原文地址:https://www.cnblogs.com/wt7018/p/13629712.html