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 中的嵌入式调试器的能力。