LineReader和LineRecordReader
来源:互联网 发布:c语言struct 编辑:程序博客网 时间:2024/06/05 20:00
RecordReader是抽象类,LineRecordReader是实现类,RecordReader有很多子类,例如LineRecordReader,SequenceFileRecordReader,KeyValueLineRecordReader等,里面的方法实现不一样,如nextKeyValue()方法。
系统默认的RecordReader是LineRecordReader,如TextInputFormat;而SequenceFileInputFormat的RecordReader是SequenceFileRecordReader;
InputFormat其实是一个接口,包含了两个方法:
public interface InputFormat<K, V> {
InputSplit[] getSplits(JobConf job, int numSplits) throws IOException;
RecordReader<K, V> getRecordReader(InputSplit split,
JobConf job,
Reporter reporter) throws IOException;
}
InputSplit[] getSplits(JobConf job, int numSplits) throws IOException;
RecordReader<K, V> getRecordReader(InputSplit split,
JobConf job,
Reporter reporter) throws IOException;
}
getRecordReader方法是用来得到一个类的实例。
FileInputFormat是一个抽象类。TextInputFormat是继承该抽象类的具体实现。
InputFormat(interface), FileInputFormat(abstract class), TextInputFormat(class)
RecordReader(interface), LineRecordReader(class)的关系如下:
1. FileInputFormat(抽象类) implements InputFormat(接口)
2. TextInputFormat(具体实现) extends FileInputFormat
3. TextInputFormat.getRecordReader calls LineRecordReader
4. LineRecordReader implements RecordReader,即RecordReader是抽象类,LineRecordReader是实现类。
0 0
- LineReader和LineRecordReader
- LineRecordReader源码
- hadoopAPI之LineReader类
- Hadoop自定义linereader,实现按行分块
- lineReader 文件上传MySQL(可读每行)
- 详解Hadoop中的LineReader的readLine函数
- 研究MapReduce源码之实现自定义LineRecordReader完成多行读取文件内容
- Hadoop源代码分析(一)——输入(TextInputFormat,FileSplit,LineRecordReader)
- java获取当前路径及加载配置文件(报错:java.lang.NullPointerException java.util.Properties$LineReader.readLine(Prop)
- . 和 ->
- || 和&&
- .和::
- “?”和“!”
- #和##
- && 和 ||
- 、和
- #和##
- .//和..//
- Android 布局
- 如何获取Weka源码
- 断点调试
- MFC(7) 利用CWinThread实现跨线程父子MFC窗口
- E87EF1BE The largest dump device is too small
- LineReader和LineRecordReader
- Struts2的执行流程
- MongoDB使用中的问题
- HDOJ刷题(1095)
- Android测试
- Android工具
- LeetCode(118) Pascal's Triangle (Java)
- Objective-c带时区的时间格式转换(zone,NSDate,NSString)
- c++之浅拷贝和深拷贝