在map函數中獲取當前記錄來自的文件名稱

查找資料,發現可以通過

InputSplit inputSplit=(InputSplit)context.getInputSplit();
String filename=((FileSplit)inputSplit).getPath().getName();

來獲取,結果很不幸,我失敗了,問題出在哪裏呢,還是新舊API搗的鬼。

其實以前的“Hadoop中mapred包和mapreduce包的區別”中有提到hadoop的新舊API。

Hadoop舊API:org.apache.hadoop.mapred.FileSplit已廢棄

應該採用新的API,換成新的API:org.apache.hadoop.mapreduce.lib.input.FileSplit

OK,一切搞定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章