需要注意的导包的时候导这两个包
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
---------------------
作者:闻雷
来源:CSDN
原文:https://blog.csdn.net/qq_41950069/article/details/80446912
只需要获得文件的名字:
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();
- 1
获取文件名的大致流程为:Context(map函数里) → InputSplit → FileSplit → Path → String(file name)。