我来自Mainframes背景,并尝试了解Hadoop中的不同输入格式。任何人都可以解释以下三种输入格式:
- TextInputFormat - KeyValueInputFormat - SequenceFileInputFormat
答案 0 :(得分:0)
TextInputFormat:它读取文本文件行,并将该行的偏移量作为Mapper的键,将实际行作为Value提供给映射器。
TextInputFormat用作纯文本文件的InputFormat。文件分为几行。换行或回车用于发出行尾信号。键是文件中的位置,值是文本行..
KeyValueTextInputFormat(旧KeyValueInputFormat):此格式还将每行输入视为单独的记录。直到第一个制表符的所有内容都作为键发送到Mapper,并且该行的其余部分作为值发送给映射器。
当TextInputFormat将整行视为值时,KeyValueInputFormat会通过搜索制表符将行本身分解为键和值。
SequenceFileInputFormat:读取特定于Hadoop的特殊二进制文件。这些文件包含许多旨在允许将数据快速读入Hadoop映射器的功能。
序列文件是块压缩的,并提供几种任意数据类型(不仅仅是文本)的直接序列化和反序列化。序列文件可以作为其他MapReduce任务的输出生成,并且是从一个MapReduce作业传递到另一个MapReduce作业的数据的有效中间表示。