Я использую TF-IDF, используя Hadoop в Java (без свиней или улей) для обучения. Я собираюсь разбить его на три раунда: количество слов, количество слов на док и, наконец, docCount за слово.Как получить идентификатор документа в Mapper с MultipleInputs
Я верю, что основная цепочка заданий верна, однако у меня вопрос прямо в начале: в моем первом раунде, как мне получить документ Id внутри картографа? У меня есть следующие несколько входов:
Path doc1 = new Path(System.getProperty("user.dir") + "/1.dat");
Path doc2 = new Path(System.getProperty("user.dir") + "/2.dat");
Path doc3 = new Path(System.getProperty("user.dir") + "/3.dat");
MultipleInputs.addInputPath(job1, doc1, TextInputFormat.class, MapperRoundOne.class);
MultipleInputs.addInputPath(job1, doc2, TextInputFormat.class, MapperRoundOne.class);
MultipleInputs.addInputPath(job1, doc3, TextInputFormat.class, MapperRoundOne.class);
- Раунд 1:
- Mapper {DocId => [слова]} -> {[слово, DocId] => 1}
- Reducer {[ word, docId] => [1,1, ...]} -> {[word, docId] => wordCount}
Я мог бы, очевидно, docID, что, очевидно, не является общим. Как это сделать?
Спасибо! На самом деле для меня это был ответ: http://stackoverflow.com/a/11130420/363855 –