传递列表tp reducer输出

时间:2014-04-21 06:11:45

标签: hadoop mapreduce

我可以在reducer输出中传递值列表吗?

代码: -

公共类XXX扩展了Reducer>

我需要输出"文本列表"价值观。

是否可以通过Map Reduce?

2 个答案:

答案 0 :(得分:0)

您需要执行以下操作。

  1. 通过扩展ArrayList或LinkedList来创建自定义列表。
  2. 实现Writable接口。您可以将read方法保留为虚拟实现,并以您希望输出的方式覆盖写入。
  3. reducer将自定义列表作为输出值,即YourReducer

答案 1 :(得分:0)

我认为你的映射器看起来应该是这样的

Mapper<LongWritable,Text,Text,ArrayWritable>

Reducer应该是这样的

Reducer<Text,IntWritable,Text,ArrayWritable>

在两个签名中都要注意ArrayWriteable。

有六种可写的集合类型数组 Writable,ArrayPrimitiveWritable,TwoDArrayWritable,MapWritable, SortedMapWritable和EnumSetWritable。

在键和值ArrayWritable上调用toString()的默认TextOutputFormat会覆盖其toString()方法,所以你应该使用这个集合得到一些接近开箱即用的东西。