Я не смог найти ответ на свой вопрос, если есть похожий пост, пожалуйста, отправьте меня туда.
У меня есть файл CSV, на котором я пытаюсь выполнить mapreduce, форматCSV состоит из двух столбцов: Название книги |Сводка.Я хочу, чтобы можно было выполнить mapreduce для каждой книги и подсчитать количество слов в каждой книге, поэтому я хотел бы, чтобы вывод был следующим: Название книги: Token.
До сих пор я пыталсяиспользовать следующий код для достижения этой цели:
String firstBook = null;
while (itr.hasMoreTokens()) {
String secondBook = itr.nextToken();
if (firstBook != null) {
word.set(firstBook + ":" + secondBook);
context.write(word, one);
}
firstBook = secondBook;
}
Иногда выдается следующее;word: title
Кроме того, это ограничивает анализ, который я могу сделать, поскольку именно эту логику я хотел бы использовать для анализа биграмм в каждом синопсисе.
Есть ли способ, которымЯ могу выделить название каждой книги, просто выполнив mapreduce в столбце «синопсис» CSV?Если да, то как мне это сделать и получить желаемый результат?
Заранее большое спасибо.
ОБНОВЛЕНИЕ
Код изменен с Hadoops wordcount пример, единственное изменение в разделе "карта" и показано выше.Вы можете найти входные данные здесь .
Представление файла CSV:
Book title, Synopsis
A short history of nearly everything, Bill Byrson describes himself as a reluctant traveller...
Reclaiming economic development, There is no alternative to neoliberal economics - or so it appeared...
-> Примечание. Я сократил краткий обзор.