直接指定Hadoop mapreduce输入键(不是从文件中)
我想使用mapreduce生成一些数据。我想用一个参数N调用这个作业,并用1到N的每个整数调用Map一次直接指定Hadoop mapreduce输入键(不是从文件中),hadoop,Hadoop,我想使用mapreduce生成一些数据。我想用一个参数N调用这个作业,并用1到N的每个整数调用Map一次 显然,我想要一个映射器…这很简单。但我不知道如何生成输入数据!是否有一个InputFormat我没有看到的地方可以让我直接从集合中提取键+值 是否希望每个映射程序处理从1到N的所有整数?或者,是否要在并行运行的映射程序中分布整数1到N的处理 如果是前者,我相信您需要创建一个自定义的InputFormat。如果是后者,最简单的方法可能是生成一个包含整数1到N的文本文件,每个整数在一行上,并使用
显然,我想要一个
映射器
…这很简单。但我不知道如何生成输入数据!是否有一个InputFormat
我没有看到的地方可以让我直接从集合中提取键+值 是否希望每个映射程序处理从1到N的所有整数?或者,是否要在并行运行的映射程序中分布整数1到N的处理
如果是前者,我相信您需要创建一个自定义的InputFormat。如果是后者,最简单的方法可能是生成一个包含整数1到N的文本文件,每个整数在一行上,并使用LineInputFormat。后者;我想到了你的解决方案,它应该是有效的,但它看起来太傻了。为什么我不能以编程方式执行此操作?您可以使用自定义InputFormat以编程方式执行此操作。您必须实现getSplits以返回存储值范围的InputSplit,而RecordReader将返回这些范围内的单个值。有关更多信息,请参阅。