Scala - Spark GraphX:运行 Pregel 运算符的调试代码
Scala - Spark GraphX: debug code that runs Pregel operator
我想在我的 graphX 网络上使用我对 vprog、sendMsg 和 mergeMsg 的自定义逻辑执行 Pregel 运算符,但结果是错误的。那么,我该如何调试呢?
我不想 post 代码,只是知道如何进行调试,或许可以从您的提示中学习。
调试 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 中的嵌入式调试器的能力。
我想在我的 graphX 网络上使用我对 vprog、sendMsg 和 mergeMsg 的自定义逻辑执行 Pregel 运算符,但结果是错误的。那么,我该如何调试呢? 我不想 post 代码,只是知道如何进行调试,或许可以从您的提示中学习。
调试 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 中的嵌入式调试器的能力。