GroupingComparator分组(辅助排序)
这里举例说明:
需求:
由上图结合GroupingComparator分组,我们可以做出这样的分析:
需要利用“订单id和成交金额”作为key,可以将Map阶段读取到的所有订单数据按照id升序排序,如果id相同再按照金额降序排序,发送到Reduce。这里商品id无关紧要我们把它去除.
接下来我们就定义orderBean:
import org.apache.hadoop.io.WritableComparable;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
//这里的泛型定义为orderBean用来封装
public class orderBean implements WritableComparable {
public long orderId;
public double price;
//两构造方法
public orderBean() {
}
public orderBean(long orderId, double price) {
this.orderId = orderId;
this.price = price;
}
//这里重写的compareTo