GroupingComparator分组(辅助排序)
对Reduce阶段的数据根据某一个或几个字段进行分组。
分组排序步骤:
1.自定义类继承WritableComparator
2.重写compare()方法
@Override
public int compare(WritableComparable a, WritableComparable b) {// 比较的业务逻辑
return result;
}
3.创建一个构造将比较对象的类传给父类
protected OrderGroupingComparator(){
super(orderBean.class,true);
}
4.job中设置reduce端的分组
job.setGroupingComparatorClass(OrderGroupingComparator.class);
OrderSortGroupingComparator类
public class OrderGroupingComparator extends WritableComparator {
protected OrderGroupingComparator() { super(OrderBean.class, true)
}
@Override
public int compare(WritableComparable a, WritableComparable b) {
OrderBean aBean = (OrderBean) a; OrderBean bBean = (OrderBean) b;
int result;
if (aBean.getOrder_id() > bBean.getOrder_id()) { result = 1; } else if (aBean.getOrder_id() < bBean.getOrder_id()) { r
esult = -1; } else {
result = 0; }
return result; }
}