我正在使用mapreduce为web搜索构建反向索引。我知道如何使用mapreduce和一个键类型,您可以在这里设置它:
job.setMapOutputKeyClass(ArrayListWritable.class);
job.setOutputKeyClass(ArrayListWritable.class);
但是,如果我的密钥可以是不同的类型,那支持吗?例如,一个键可能只是文本,另一个键可能是pairofwriteables。我想为从Map器到reducer以及从reducer到最终输出的输出设置不同的键类型。我已经看到了一个名为multipleoutputs的类,它允许指定不同的键和类,但是我不确定在这种情况下使用它是否合适。从互联网上看,似乎multipleoutputs只用于reducer方法,而不是mapper。
1条答案
按热度按时间o2rvlv0m1#
这里有个主意。不如创建一个新类,该类可以接受任何类型的数据,这些数据希望传递到reduce上。该类将包含一个tostring()方法,该方法最终将数据表示为字符串。使用这个字符串,可以使用hadoop中的text类将其用作键