2017-10-01 19 views
2

vprog, sendMsg 및 mergeMsg에 사용자 정의 논리를 사용하여 내 GraphX ​​네트워크에서 Pregel 연산자를 수행하려고하지만 결과가 잘못되었습니다. 그래서 어떻게 디버깅 할 수 있습니까? 코드를 게시하고 싶지는 않지만 디버깅을 할 수있는 방법을 알고 있습니다. 팁을 통해 학습 할 수 있습니다. 당신이 로거를 사용하지 않을 경우Scala - Spark GraphX ​​: Pregel 연산자를 실행하는 디버그 코드

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) 
) 

하기의 사항을 고려하십시오 (이 생산 코드 아니라면, 심지어 println 또는)

답변

2

Pregel의 디버그 동작하는 가장 간단한 방법은 표준 로거에서 debug을 사용하고 있습니다 IDE에 포함 된 디버거의 기능.

+0

"databricks"계정에서 "debug"를 사용하려고합니다. 그렇지 않으면 Eclipse를 사용할 것입니다. 감사! – alukard990