2013-05-20 48 views
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,這顯然不是通用的。怎麼做?

回答

相關問題