2015-04-01 112 views

回答

1
setGroupingComparatorClass(Class<? extends RawComparator> cls) 

定义哪些键被分组在一起用于一个呼叫到Reducer.reduce(对象,可迭代,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); 
     } 

    } 
} 

希望这可以帮助你。

+0

谢谢高拉夫,我会实现这个&让你知道。感谢您的支持。 – user4734746 2015-04-01 13:24:18

+0

欢迎您! – 2015-04-01 13:25:17