У меня есть код уменьшения кода, в mapper я делаю некоторые вычисления, тогда как в редукторе я применяю формулу, чтобы получить результат. Мой результат заключен в парах IntDouble как ключ и Text как значение. Мне нужно знать, как я могу сортировать результат редуктора?Hadoop - Сортировка в Reducer
Вот образец выходного редуктора. Мне нужно сортировать по ключам. Я реализовал весь код в mapper, и он отлично отсортировал его, но в отличие от редуктора результат не сортируется.
[1 0.5] Mr. Nice Guy
[1 0.0] Rush Hour
[1 0.3] Twin Dragons
[1 0.6] Snake in the Eagle's Shadow
[1 0.5] Police Story
[1 0.5] Armour of God 2: Operation Condor
[1 0.5] Drunken Master
Ожидаемое отсортированный список:
[1 0.0] Rush Hour
[1 0.3] Twin Dragons
[1 0.5] Mr. Nice Guy
[1 0.5] Police Story
[1 0.5] Armour of God 2: Operation Condor
[1 0.5] Drunken Master
[1 0.6] Snake in the Eagle's Shadow
После присвоения результата в ArrayList, должен ли я сделать метод для сортировки списка? потому что метод Collections.sort по умолчанию, похоже, не работает для такого рода строк. –
user1584253
после того, как вы определите IntDoublePair реализует Comparable Collections.sort будет применяться для вашего объекта и сортирует ваш список. вот отличный учебник: http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/ –
belostoky
, когда я снова думаю об этом, это не поможет вам ... потому что редуктор уже выполняет итерации по значениям одного и того же ключа ... извините:/ – belostoky