MapReduce提供的输入输出格式

输入格式   key value
TextInputFormat 默认格式,读取文件的行 行的字节偏移量 行的内容
KeyValueInputFormat 把行解析为键值对 第一个tab字符前的所有字符 行剩下的内容
SequenceFileInputFormat Hadoop定义的高性能二进制格式 自定义 自定义

说明:

TextInputFormat:默认的输入格式,输入文件每一行作为单独的一个记录,但不做解析处理。这对那些没有被格式化的数据或是基于行的记录来说是很有用的,比如日志文件。

KeyValueInputFormat:也是把输入文件每一行作为单独的一个记录。然而不同的是TextInputFormat把整个文件行当做值数据,KeyValueInputFormat则是通过搜寻tab字符来把行拆分为键值对。这在把一个MapReduce的作业输出作为下一个作业的输入时显得特别有用,因为默认输出格式(下面有更详细的描述)正是按KeyValueInputFormat格式输出数据。

SequenceFileInputFormat,它会读取特殊的特定于Hadoop的二进制文件,这些文件包含了很多能让Hadoop的mapper快速读取数据的特性。Sequence文件是块压缩的并提供了对几种数据类型(不仅仅是文本类型)直接的序列化与反序列化操作。Squence文件可以作为MapReduce任务的输出数据,并且用它做一个MapReduce作业到另一个作业的中间数据是很高效的

用法:

job.setInputFormatClass(SequenceFileInputFormat.class);

输出格式类似。

原文地址:https://www.cnblogs.com/wuzhenquan/p/3618527.html