我正在研究Map-Reduce的问题。但是我坚持要如何将List<Text>作为Mapper output传递?有没有可能?如果是,那么我们如何告诉configuration有关Mapper output class的信息?

最佳答案

您可以将ArrayWritable类用作映射器类中的值对象。请为您的映射器类参考以下代码段,

ArrayWritable arrayWritable = new ArrayWritable(Text.class);

Text [] textValues = new Text[2];
textValues[0] = new Text("value1");
textValues[1] = new Text("value1");

arrayWritable.set(textValues );
context.write(key , arrayWritable );

在驱动程序类中将值类设置如下,
job.setMapOutputValueClass(ArrayWritable.class);

10-07 12:22