▶ \blacktriangleright ▶分组
-
shuffle的分组阶段GroupingCompaartor 他是一个自定义排序接口
-
分组阶段要继承WritableComparator类,要写无参构造器,要重写compare方法
import org.apache.hadoop.io.Text; import org.apache.hadoop.io.WritableComparable; import org.apache.hadoop.io.WritableComparator; public class ScoreGroupCompara extends WritableComparator { public ScoreGroupCompara() { //第一个参数:key的类型 第二个:创建这2个key的实例对象,如果是false 下面就没法比较会报空指针异常 super(Text.class,true); } /** * 定义k相等的规则 * @param a 第i条记录k的值 * @param b 第i+1条记录k的值 * @return */ @Override public int compare(WritableComparable a, WritableComparable b) { String k1 = a.toString().substring(0,1); String k2 = b.toString().substring(0,1); //返回0,这两个k相等 return k1.compareTo(k2); } }