hadoop map中获取文件/切片名称
Posted Nucky_yang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hadoop map中获取文件/切片名称相关的知识,希望对你有一定的参考价值。
//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中获取文件/切片名称的主要内容,如果未能解决你的问题,请参考以下文章
mapreduce输入数据为helloworldbyword的切片处理结果