2013-11-30 2 views
0

Я искал hadoop (используя Streaming и Python) для сортировки выходов Mapper с помощью первых двух клавиш;Hadoop: Сортировка по первым двум клавишам численно?

Мои картографа печатает следующим образом print '%s\t%s\t%s' & (num1, num2, value)

Я хочу, чтобы мои редукторы, чтобы получить эти данные, отсортированные по num1 и затем num2, так что эти результаты:

2 1 C 
1 2 A 
10 3 D 
1 10 B 

доставленные восстановителей, как это (предполагая, что мы имеют 3 редукторы):

1 2 A 
1 10 B 
----------- 
2 1 C 
------------ 
10 3 D 

Я пытался использовать опцию mapred.text.key.partitioner.options установив его на -k1n,1 -k2n,2, но это, похоже, не работает.

Любые идеи?

Я в принципе хочу Hadoop, чтобы выполнить эту unix сортировки: sort -k1n,1 -k2n,2

Версия Hadoop я использую 0.20.2

Благодаря

ответ

0

Я не отвечаю на ваш вопрос, но вот Решение: если вы просто соедините num1 и num2 в своем выводе картографа, сортировка по умолчанию сделает трюк. Просто будьте осторожны с напечатанным форматом: вам нужно управлять числом ноль перед ненулевыми номерами (например, 0002 предшествует 0010, но 2 следует за 10).

Смежные вопросы