hadoop之输入输出格式
<STRONG>jobConf.setInputFormat(MyInputFormat.
class
);
InputFormat:</STRONG>
TextInputFormat:用于读取纯文本文件,文件被分为一系列以LF或CR结束的行,key是每一行的偏移量(LongWritable),value是每一行的内容(Text)。
KeyValueTextInputFormat:用于读取文件,如果行被分隔符分割为两部分,第一部分为key,剩下的为value;若没有分隔符,整行作为key,value为空。
SequenceFileInputFormat:用于读取SequenceFile,读取格式要与写出SequenceFileOutputFormat时设置的setOutputKeyClass与setOutputValueClass一致(key+value的格式)。
SequenceFileInputFilter:根据filter从SequenceFile中取得满足条件的数据,通过setFilterClass指定Filter,内置了三种Filter,RegexFilter取key值满足指定的正则表达式的记录;PercentFilter通过指定参数f,取记录行数f%==
0
的记录;MD5Filter通过指定参数f,取MD5(key)%f==
0
的记录。
例子:conf.setInputFormat(KeyValueTextInputFormat.
class
);
<STRONG>jobConf.setOutputFormat(MyOutputFormat. class ); setOutputFormat:</STRONG> TextOutputFormat:输出到纯文本文件,格式为key + “ ”+ value。 NullOutputFormat:hadoop中的/dev/ null ,将输出送进黑洞。 SequenceFileOutputFormat,输出SequenceFile文件,其具体格式与setOutputKeyClass,setOutputValueClass相关 ,如此SequenceFileInputFormat的读取格式应该与SequenceFileOutputFormat的输出格式一致(key+value的格式) MultipleSequenceFileOutputFormat, MultipleTextOutputFormat:根据key将记录输出到不同的文件,可以被重写 DBInputFormat和DBOutputFormat,从DB读取,输出到DB。 例子:conf.setOutputFormat(TextOutputFormat. class ); |
(转载)
InputSplit决定了每个Mapper要处理的数据集;
而InputFormat则决定了每一个Split里面的数据格式/数据结构;详见(http://book.douban.com/annotation/17068812/)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步