什么是hadoop排序比较器类?

时间:2015-04-21 10:53:06

标签: sorting hadoop mapreduce compare comparator

我已经实现了hadoop sort比较器类来对我的键进行排序。我知道它用于比较每个键。但是,我不知道它的细节如何运作?是真的,如果它用于比较?

谢谢大家......

1 个答案:

答案 0 :(得分:0)

说,你的密钥是(Attribute1, Attribute2)。现在您可以使用Sort Comparator,首先按Attribute1排序,然后按Attribute2排序。

例如,

Key = (2008,32) // year, temperature

现在,如果您想按年份然后按温度排序,可以使用Sort Comparator,如下所示:

public static class KeyComparator extends WritableComparator {
    protected KeyComparator() {
        super(CompositeKey.class, true);
    }

    @Override
    public int compare(WritableComparable w1, WritableComparable w2) {
        CompositeKey ip1 = (CompositeKey) w1;
        CompositeKey ip2 = (CompositeKey) w2;
        int result = CompositeKey.compare(ip1.getYear(), ip2.getYear());
        if (result != 0) {
            return result;
        }
        return CompositeKey.compare(ip1.getTemperature(), ip2.getTemperature());
    }
}