在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,一切搞定

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