hadoop将int数组从map传递到reducer并作为输出
问题:hadoop将int数组从map传递到reducer并作为输出 我正在学习使用hadoop并遇到以下问题:我需要将一个int数组从map函数传递给reducer,然后作为输出。 所以它看起来像这样: public void map(LongWritable key,Text value,OutputCollector<Text, IntWritable> output,Reporter re
·
问题:hadoop将int数组从map传递到reducer并作为输出
我正在学习使用hadoop并遇到以下问题:我需要将一个int数组从map函数传递给reducer,然后作为输出。
所以它看起来像这样:
public void map(LongWritable key,Text value,OutputCollector<Text, IntWritable> output,Reporter reporter) throws IOException{
..snip..
int[] output={0,0,1,1}; //or something like it
output.collect(word,output);
}
and
public static class reduce exteds mapReduceBase implements reducer<Text,IntWritable,Text, Intwriteable>{
int[] sum={0,0,0,0}
while(values.hasNext()){
int[] numbers=values.next().get
for(int i=0;i<numbers.length;i++)
sum[i]=sum[i]+numbers[i];
}
}
如果您知道如何解决此问题,请发布。谢谢。
解答
考虑编写自己的自定义Writable
(扩展ArrayWritable
应该很容易 - 事实上,此类的 JavaDoc 有一个IntWritable
数组的示例)。
更多推荐
所有评论(0)