2013-05-20 2 views
1

Я использую 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, что, очевидно, не является общим. Как это сделать?

ответ

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