我需要在Job中使用方法setGroupingComparatorClass
,它需要一个WritableComparable
类型的参数。
我无法实施WritableComparable
课程。
请帮我解决这个问题。此致,Bidyut
答案 0 :(得分:1)
setGroupingComparatorClass(Class<? extends RawComparator> cls)
定义比较器,控制哪些键组合在一起,以便对Reducer.reduce(Object,Iterable,org.apache.hadoop.mapreduce.Reducer.Context)进行单次调用
job.setGroupingComparatorClass(CustomKey.GroupComparator.class);
在Customkey类中,您可以编写静态方法。
在自定义密钥类中添加以下代码。
public class Customkey implements WritableComparable<IndexerKey> {
public static class GroupComparator extends WritableComparator
implements Serializable {
private static final long serialVersionUID = -3385728040072507941L;
public GroupComparator() {
super(Customkey .class, true);
}
@SuppressWarnings("rawtypes")
public int compare(WritableComparable a, WritableComparable b) {
Customkey w1 = (Customkey ) a;
Customkey w2 = (Customkey ) b;
return w1.compareGroup(w2);
}
}
}
希望这可以帮到你。