2
我想用我的定製邏輯對我的graphX網絡上的Pregel運算符執行vprog,sendMsg和mergeMsg,但結果是錯誤的。那麼,我該如何調試呢? 我不想發佈代碼,但只是知道如何進行調試,也許從您的提示中學習。Scala - Spark GraphX:運行Pregel運算符的調試代碼
我想用我的定製邏輯對我的graphX網絡上的Pregel運算符執行vprog,sendMsg和mergeMsg,但結果是錯誤的。那麼,我該如何調試呢? 我不想發佈代碼,但只是知道如何進行調試,也許從您的提示中學習。Scala - Spark GraphX:運行Pregel運算符的調試代碼
到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中的功能。
我會嘗試在我的databricks帳戶上使用「debug」,否則我會使用Eclipse。謝謝! – alukard990