1
我正在使用Java中的Hadoop(無豬或配置單元)編寫TF-IDF用於學習目的。我將分三個步驟進行分類:字數統計,每個文檔的字數統計以及每個單詞的docCount統計。如何在具有MultipleInputs的Mapper中獲取文檔ID
我相信主鏈的工作是正確的,但是我在開始時有一個問題:在我的第一輪中,如何在映射器中獲取文檔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輪:
- 映射{的docID => [詞語]} - > {[字,docID的] => 1}
- 減速器{[ word,docId] => [1,1,...]} - > {[word,docId] => wordCount}
我明顯可以設置每個輸入到不同的映射器, docID,這顯然不是通用的。怎麼做?
感謝搞定!真正爲我工作的是這個答案:http://stackoverflow.com/a/11130420/363855 –