我刚开始学习hadoop,输入类型有多种格式。我几乎没有要学习的程序,我的主要问题是如何识别输入格式是textinputformat还是keyvaluetextinputformat或任何其他格式。非常感谢你的帮助
pgccezyw1#
你不必确定 InputFormat 正在由mapreduce程序使用。 InputFormat 是可以在程序中显式指定的内容,mapreduce作业将使用它。如果不指定任何内容,它将使用默认值 TextInputFormat 延伸到 FileInputFormat<LongWritable, Key> . 这就是为什么在一个简单的wordcount程序中,您经常会看到 Mapper 类别定义为:
InputFormat
TextInputFormat
FileInputFormat<LongWritable, Key>
Mapper
public class MyMapper extends Mapper<LongWritable, Key, Text, IntWritable> { //... }
可以指定要在中使用的输入格式 JobConf 对象:
JobConf
JobConf job = new JobConf(new Configuration(), MyJob.class); job.setInputFormat(SequenceFileInputFormat.class); job.setOutputFormat(SequenceFileOutputFormat.class);
链接到:inputformat.class以供进一步阅读。
1条答案
按热度按时间pgccezyw1#
你不必确定
InputFormat
正在由mapreduce程序使用。InputFormat
是可以在程序中显式指定的内容,mapreduce作业将使用它。如果不指定任何内容,它将使用默认值
TextInputFormat
延伸到FileInputFormat<LongWritable, Key>
. 这就是为什么在一个简单的wordcount程序中,您经常会看到Mapper
类别定义为:可以指定要在中使用的输入格式
JobConf
对象:链接到:inputformat.class以供进一步阅读。