TextInputFormat源码

来源:互联网 发布:手机怎么注册淘宝号 编辑:程序博客网 时间:2024/05/16 00:33

TextInputFormat是FileInputFormat的子类,其createRecordReader()方法返回的就是LineRecordReader。


  1. public class TextInputFormat extends FileInputFormat<</span>LongWritableText>  
  2.   
  3.   @Override  
  4.   public RecordReader<</span>LongWritableText>   
  5.     createRecordReader(InputSplit split,  
  6.                        TaskAttemptContext context)  
  7.     return new LineRecordReader();  
  8.    
  9.   
  10.   @Override  
  11.   protected boolean isSplitable(JobContext context, Path file)  
  12.     CompressionCodec codec   
  13.       new CompressionCodecFactory(context.getConfiguration()).getCodec(file);  
  14.     return codec == null;  
  15.    


  16.   我们还看到isSplitable()方法,当文件使用压缩的形式,这个文件就不可分割,否则就读取不到正确的数据了。这从某种程度上将影响分片的计算。 有时我们希望一个文件只被一个Mapper处理的时候,我们就可以重写isSplitable()方法,告诉MapReduce框架,我哪些文件可以分 割,哪些文件不能分割而只能作为一个分片。
0 0
原创粉丝点击