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); }