InputFormat 继承关系
这里只说常用的继承关系
inputformat
----------> fileinputformat
----------> ----------> textinputformat
inputformat作用
生成切片信息 + 读取数据
主要有两个抽象方法
-
生成切片信息
public abstract List<InputSplit> getSplits(JobContext context ) throws IOException, InterruptedException; -
读取数据
public abstract RecordReader<K,V> createRecordReader(InputSplit split, TaskAttemptContext context ) throws IOException, InterruptedException;
fileinputformat
重写了getSplits方法
textinputformat
-
是inputformat默认使用的
-
重写了createRecordReader方法
/* 1.重写了createRecordReader方法 2.在createRecordReader方法中返回了LineRecordReader。LineRecordReader真正用来读取数据的类 3.RecordReader是一个抽象类。LineRecordReader是RecordReader的子类 */ @Override public RecordReader<LongWritable, Text> createRecordReader(InputSplit split, TaskAttemptContext context) { return new LineRecordReader(recordDelimiterBytes); }
本文介绍了Hadoop中InputFormat的继承关系及其核心功能。详细解释了InputFormat如何生成切片信息及读取数据,并着重分析了FileInputFormat与TextInputFormat的具体实现。

被折叠的 条评论
为什么被折叠?



