在MapReduce Iterable IntWritable

时间:2019-03-07 18:54:18

标签: java hadoop mapreduce

我正在Java Hadoop中使用MapReduce来计算输出边缘和输入边缘之间的差异。 例如,节点2具有2个输出边缘和3个输入边缘,则差为-1。

src,tgt

1, 2
2 ,1
2 ,3
3, 2
4, 2
4、3

所以输出应该是:节点2,差:-1。

在Mapper函数中,如果源为2,则为IntWritable +1;如果目标为2,则为-1。

因此,映射器将在Iterable IntWritable之后生成此代码,并将其发送到Reducer。

(节点2,值(-1,+1,+1,-1,-1)),减速器返回(0,-1)而不是-1。

以下输出:

1 0
2 0
2 -1
3 0
3 -1
4 2

我在不同的情况下尝试了几次,这就是我所相信的。我没有办法让reducer简单地将所有数字相加并返回一个值?

0 个答案:

没有答案