Java 图形数据上的MapReduce-reducer返回不正确的附加数据

Java 图形数据上的MapReduce-reducer返回不正确的附加数据,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我正在尝试在Stanford snap的web图形数据集上运行Hadoop Map Reduce。图形表示为一个文本文件,包含开始和结束节点,如图所示(前几行)- 其目的是为每个节点建立一个邻接列表,并计算每个邻接的长度。名单 映射器发射成对的开始和结束节点- public static class AdjMapper extends Mapper<Object, Text, Text, Text>{ private Text outVal = new Te

我正在尝试在Stanford snap的web图形数据集上运行Hadoop Map Reduce。图形表示为一个文本文件,包含开始和结束节点,如图所示(前几行)-

其目的是为每个节点建立一个邻接列表,并计算每个邻接的长度。名单

映射器发射成对的开始和结束节点-

public static class AdjMapper
       extends Mapper<Object, Text, Text, Text>{
      private Text outVal = new Text();
      private Text outKey = new Text();

      public void map(Object key, Text value, Context context) throws IOException, InterruptedException 
      {
        String inline = value.toString();
        if (!inline.startsWith("#")) {
            String[] inVals = inline.split("\t");
            outKey.set(inVals[0]);
            outVal.set(inVals[1]);
            context.write(outKey, outVal);
        }
      }
  }
这一行应该在结果中每一行的末尾追加每个邻接列表的长度-
adjlst=adjlst+“#”+cntr

但是,在结果中,即使生成了正确的长度并将其添加到列表中,也会在每个节点的最末端的邻接列表中添加一个额外的
#1
,如下所示-

0   11342,824020,867923,891835#4#1
1   203402,53051,893884,862566,748615,635575,569212,552600,276233,223236#10#1
10  556796,826668,49988,85506,129774,134964,181848,194746,310676,332640,393685#11#1
1000    890302,902208#2#1
我添加了一些print语句,并且能够使用
纱线日志
获取日志,下面是日志中的一个片段-

=====
Counter: 4
Adj List: 579169,724176,185821,463266#4
=====
=====
Counter: 3
Adj List: 384668,278120,666332#3
=====
因此,列表正在正确构建,并且长度也添加到了末尾。但是为什么/如何在末尾添加
#1

0   11342,824020,867923,891835#4#1
1   203402,53051,893884,862566,748615,635575,569212,552600,276233,223236#10#1
10  556796,826668,49988,85506,129774,134964,181848,194746,310676,332640,393685#11#1
1000    890302,902208#2#1
=====
Counter: 4
Adj List: 579169,724176,185821,463266#4
=====
=====
Counter: 3
Adj List: 384668,278120,666332#3
=====