需要注意的導包的時候導這兩個包
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)。