2015-12-03 2 views
1

если для простой работы с картой, скажем, wordcount. Выход выходит отсортированным, есть ли способ, которым порядок будет выходить в обратном порядке (слова, начинающиеся с первого приближения Z) или любой другой индивидуальный порядок.reverse MapReduce order

+0

Возможный дубликат [Обратный SORTING РЕДУКТОР Кис] (https://stackoverflow.com/questions/11670953/reverse-sorting-reducer-keys) – jenesaisquoi

ответ

0

Look Koushik, Вы можете сделать это очень хорошо, но вам нужно настроить. Чтобы настроить ключ, вам необходимо реализовать WritableComparable или расширить класс WritableComparator для реализации методов compareTo() или compare() соответственно. У каждого метода есть свои плюсы и минусы, и за пределами вопроса вы спрашиваете, поэтому я не собираюсь этого делать.

Приближается к вашему вопросу.

Имея в виду соображения эффективности в процессе сериализации/Desirialization, которые имеют тенденцию вызывать сетевые издержки, я реализую метод compare(), который будет явно сортировать значения выходных ключей в порядке убывания. Ниже приводится определение метода, который вы можете пройти через ОТТ

public static class DescendingKey extends WritableComparator { 
    protected DescendingKey() { 
     super(Text.class, true); 
    } 

    @SuppressWarnings("rawtypes") 
    @Override 
    public int compare(WritableComparable w1, WritableComparable w2) { 
     LongWritable key1 = (LongWritable) w1; 
     LongWritable key2 = (LongWritable) w2;   
     return -1 * key1.compareTo(key2); 
    } 
} 

здесь гляньте на следующем «возвратного» заявление

return -1 * key1.compareTo(key2); -1 является единственным маркер или сказать операнд, который на самом деле инструмент для сортировки ключей в порядке убывания. Если вы меняете -1 на +1, похоже, обратное происходит, т. Е. Все данные сортируются в порядке возрастания. Вернитесь ко мне, если вы сомневаетесь в ответе.

спасибо :)

+0

Спасибо большое :) я вернусь после того, как ее реализации. –

+0

Да, попробуйте :) –

+0

отметьте ответ как принятый, если вы удовлетворены ответом. –