From 7a3bc221e87a5e73acc9094fd71107af2fe71575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A8=E4=BF=9D=E6=9C=9F?= <2550420029@qq.com> Date: Thu, 7 Nov 2019 16:05:40 +0800 Subject: [PATCH] chapter4 --- chapter4/4.2SparkGraphX计算生成最短路径.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/chapter4/4.2SparkGraphX计算生成最短路径.md b/chapter4/4.2SparkGraphX计算生成最短路径.md index 5e5bb0c..9edb1a7 100644 --- a/chapter4/4.2SparkGraphX计算生成最短路径.md +++ b/chapter4/4.2SparkGraphX计算生成最短路径.md @@ -110,9 +110,12 @@ initialGraph.pregel( // 激活态的节点调用该方法发送消息 // 将上一个节点和当前节点的属性添加到array中。可以理解将迭代的节点都添加到array中 var array = new ArrayBuffer[Long]() - println(edgeTriplet.srcAttr._1 +"|"+edgeTriplet.dstAttr._1) array ++= edgeTriplet.srcAttr._1 - array ++= edgeTriplet.dstAttr._1 + val dstarr = edgeTriplet.dstAttr._1 + if (dstarr.length>1) + array +=dstarr(dstarr.length-1) + else + array ++= edgeTriplet.dstAttr._1 // 相邻点接收到信息,将消息中的值与自身的值做比较,决定是否更改自身的值,每个更改过值的点将被激活 if(edgeTriplet.srcAttr._2 + edgeTriplet.attr < edgeTriplet.dstAttr._2) { Iterator((edgeTriplet.dstId, (array,edgeTriplet.srcAttr._2 + edgeTriplet.attr )))