我想在我的graphX网络上使用我的自定义逻辑对vprog,sendMsg和mergeMsg执行Pregel运算符,但结果是错误的。那么,我该如何调试呢? 我不想发布代码,只是知道如何进行调试,也许可以通过学习提示。
答案 0 :(得分:2)
调试Pregel
行为的最简单方法是使用标准记录器中的debug
(如果不是生产代码,则使用println
):
initialGraph.pregel(Double.PositiveInfinity)(
(id, dist, newDist) => math.min(dist, newDist), // Vertex Program
triplet => { // Send Message
debeg(s"Send messege ${triplet.srcAttr} with attribute ${triplet.attr}")
if (triplet.srcAttr + triplet.attr < triplet.dstAttr) {
Iterator((triplet.dstId, triplet.srcAttr + triplet.attr))
} else {
Iterator.empty
}
},
debeg(s"Compare $a and $b")
(a, b) => math.min(a, b)
)
如果您不想使用记录器,请考虑IDE中嵌入式调试器的功能。