需要注意的导包的时候导这两个包
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
只需要获得文件的名字:
InputSplit inputSplit=(InputSplit)context.getInputSplit();
String filename=((FileSplit)inputSplit).getPath().getName();
简化后:String filename=((FileSplit)context.getInputSplit()).getPath().getName();
System.out.println(filename);
如果需要获得在hdfs上的绝对路径,可以用以下代码实现:
String filepath = ((FileSplit)context.getInputSplit()).getPath().toString();
获取文件名的大致流程为:Context(map函数里) → InputSplit → FileSplit → Path → String(file name)。