MapReduce с 2 значениями - PullRequest
1 голос
/ 18 июня 2019

Возможно ли иметь два значения в MapReduce?

Мой CSV выглядит так:

month,  date,  deviceCategory, totalTransactionRevenue
201608 20160801  Desktop        1000
201608 20160801  Mobile         700

Я хочу использовать MapReduce для расчета среднего дохода каждого вида устройств в месяц. Я хочу, чтобы результат выглядел так:

 (month, deskRev, mobileRev)

Но когда я кодирую context.write(month, DesktopoutPut, MobileoutPut); в Mapper, он говорит, что не может быть применен к данным типам. Это потому, что MapReduce должен быть в паре ключ-значение?

Спасибо !!

1 Ответ

1 голос
/ 19 июня 2019

Ну, в соответствии с вашими потребностями вы можете объединить месяц и категорию устройства. Следовательно, вы можете использовать это как ключ (это фактически формирует составной ключ). Этот ключ и соответствующее значение будут выглядеть как

<<em> 201608 Рабочий стол , 1000>

<<em> 201608 Мобильный , 700>

В вашей программе не требуется никаких изменений, кроме одной строки для объединения двух полей.

...