Мне было предложено изменить пример WordCount так, чтобы каждая функция-манипулятор суммировала вхождения слов в файл вместе, прежде чем передавать его. Так, например, вместо:Hadoop WordCount, сумма на карте
<help,1>
<you,1>
<help,1>
<me,1>
Выход преобразователя будет:
<help,2>
<you,1>
<me,1>
Так бы я добавить слово в массив, а затем проверить вхождения? Или есть более простой способ?
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
context.write(word, one);
}
Меня интересует ваш ответ. Могу ли я узнать, где хранится этот мультимайл? Я имею в виду, что эта функция карты работает на нескольких ПК правильно? – AchmadJP
@AchmadJP Я на самом деле имел в виду Multiset. Я обновил свой ответ перед вашим комментарием. Не путайте структуру данных, такую как Multiset, Multimap или java Map с методом map() MapReduce. Они совершенно разные. Пожалуйста, прочитайте документацию Multiset, которую я предоставляю в качестве ссылки в своем ответе. Я надеюсь, что это помогает. Таким образом, если вы не смущены, эти структуры данных сохраняются только в памяти каждого устройства отображения и удаляются впоследствии; они не записываются на диск в любое время. – vefthym
Ваши объяснения очень хорошие. Пожалуйста, подумайте о том, чтобы вставить свой комментарий в свой ответ, если это выбрано в качестве ответа. – AchmadJP