實現統計多個文件中乙個單詞出現的頻數和出現在哪個文件中
在map中讀取當前文件的每一行資料,得到當前文件路徑
mapkey(單詞:文件路徑),mapvalue(數值1)
在map端設定combiner類(整合資料,減少向reduce端傳輸資料的網路開銷)
將map的輸出重新組合輸出《單詞,文件路徑:單詞頻數》
輸入檔案為三篇txt英文文件
輸出檔案格式為 單詞 文件1:頻數 文件2:頻數….
computation a2.txt:1
computers a1.txt:1 a3.txt:1
data a1.txt:1
deliver a2.txt:1
public static void main(string args) throws ioexception, classnotfoundexception, interruptedexception
//輸入路徑和輸出路徑的設定
fileinputformat.addinputpath(job, new path("d:\\mr\\input\\resort"));
fileoutputformat.setoutputpath(job,outpath);
system.exit(job.waitforcompletion(true)?0:1);
}
static
class
remaper
extends }
}
static
class
mycom
extends
reducer
"key:"+key.tostring()+",sum:"+sum);
ckey.set(lines[0]);
cvalue.set(lines[1]+":"+sum);
//combiner輸出key為單詞
//combiner輸出value為文件路徑:頻數
context.write(ckey,cvalue);
}}
static
class
rereduceer
extends
reducer
rvalue.set(buf.tostring());
//reduce輸出key為單詞
//reduce輸出value為文件1路徑:頻數 文件2路徑:頻數...
context.write(key,rvalue);
}}
mapreduce在倒排索引中練習
倒排索引是檔案檢索系統中常用的資料結構,被廣泛應用於全文章搜尋引擎。通常情況下,倒排索引由乙個單詞或片語以及相關的文件列表組成,文件列表中的文件或者是標識文件的id 號,或者是指定文件所在位置的 uri 在實際應用中,往往還需要給每個文件加乙個權值,用來指出每個文件與搜尋內容的相關度 我的例子中,文...
MapReduce倒排索引簡單實現
倒排索引 倒排索引是文件檢索系統中最常用的資料結構,被廣泛的應用於全文搜尋引擎。它主要用來儲存某個單詞 或片語 在乙個文件或一組文件中的儲存位置的對映,即提供了一種根據內容來查詢文件的方式,由於不是根據文件來確定文件所包含的內容,而是進行了相反的操作,因而被稱為倒排索引。例如 input 輸入有三個...
倒排索引和MapReduce簡介
1.前言 學習hadoop的童鞋,倒排索引這個演算法還是挺重要的。這是以後展開工作的基礎。首先,我們來認識下什麼是倒排索引 2.mapreduce框架簡介 2.1inputformat類 inputformat類的作用是什麼呢?其實就是把輸入的資料 就是你上傳到hdfs的檔案 切分成乙個個的spli...