Среда, 27 Ноябрь 2013
Сортированные значения для reducer
Коллеги,
Есть хитрость, которая позволяет упростить логику reducer если подавать ему сразу отсортированные значения. Код который это делает: https://gist.github.com/catap/3aabd33b86c0fc5620aa
Немного footnote по коду.
В Comparator/Grouping внятным образом получить доступ к value нельзя, приходиться делать составной ключ, который будет включать в себя:
- ключ по которому будут группировать.
- значения, или их часть, которые будут использоваться для сортировки.
Соотвествено:
- Grouping сравниваются ключи.
- Comparator сравниваются ключи и если они совпали, идет логика сортировки.
Вроде все прекрасно и все танцуют, но, в hadoop по умолчанию Partitioner использует hashCode для балансировки ключей по partition. Соответственно, либо реализуем свой hashCode, либо свой Partitioner, иначе будет интересная отладка :)
Комментарии
Форма комментирования для «Сортированные значения для reducer »