Implementierung der topologischen Sortierung in Spark GraphX

8

Ich versuche topologische Sortierung mit Hilfe von sparks GraphX ​​ Bibliothek.

Dies ist der Code, den ich bisher geschrieben habe:

MyObject.scala

%Vor%

Resource.scala

%Vor%

Relation.scala

%Vor%

Ich erhalte den Fehler:

%Vor%

für die Zeile val oldInDegree = inDegreeMapRDD.filter(vertex_iter => (vertex_iter._1 == vertex._1)).first()._2 .

Ich schätze, das liegt daran, dass es illegal ist, eine RDD innerhalb der for-each-Schleife einer anderen RDD zu modifizieren.

Ich befürchte auch, dass queue.enqueue(vertex) nicht funktionieren wird, da es nicht möglich ist, eine lokale Sammlung in for-each zu ändern. Schleife .

Wie implementiere ich diesen topologischen Sortieralgorithmus korrekt?

Der vollständige Stack-Trace der Ausnahme wird hier hochgeladen (musste extern hochgeladen werden) um zu verhindern, dass die Körpergröße von StackOverflow überschritten wird) .

    
Anmol Singh Jaggi 18.10.2016, 13:11
quelle

2 Antworten

0
%Vor%

Die äußere foreach könnte durch eine for-Schleife ersetzt werden.

    
cstur4 28.10.2016 03:31
quelle
0
%Vor%

Sie müssen die RDD abrufen, bevor Sie eine Schleife darüber machen.

    
Rahul Gvs 30.04.2017 18:10
quelle