hadoop map中獲取文件/切片名稱
阿新 • • 發佈:2017-08-30
red 合並 apach types city reduce () static from
//import org.apache.hadoop.mapreduce.InputSplit;
//import org.apache.hadoop.mapreduce.lib.input.FileSplit;
@SuppressWarnings("rawtypes") public static String getCityFromFileName(org.apache.hadoop.mapreduce.Mapper.Context context) throws IOException{ String city="unkown"; InputSplit inputSplit= context.getInputSplit(); String fileName=((FileSplit) inputSplit).getPath().getName(); city=fileName.split("-")[1]; if(city.equals("dns")||city.equals("3gwap")||city.equals("3gnet")){ city=fileName.split("-")[2].split("_")[0]; } city=city.split("_")[0];return city; }
需要註意的是:要通過context.getInputSplit() 獲取切片信息,job設置時,一定不要合並小文件。
hadoop map中獲取文件/切片名稱