Scala - Spark GraphX:运行Pregel运算符的调试代码

时间:2017-10-01 09:03:43

标签: scala apache-spark spark-graphx

我想在我的graphX网络上使用我的自定义逻辑对vprog,sendMsg和mergeMsg执行Pregel运算符,但结果是错误的。那么,我该如何调试呢? 我不想发布代码,只是知道如何进行调试,也许可以通过学习提示。

1 个答案:

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