0

Ich habe folgende Diagramm in GraphxGraphx Vertex Etikett von Eckenkennung

graph.vertices.foreach(println) 

(6109253945443866644,"Futurama"@en) 
(7558506336564503178,"AccessibleComputing"@en) 
(0,null) 
(-2278222762001827643,"Programming languages"@en) 
(-9007336571746445204,http://dbpedia.org/resource/Category:Presocratic_philosophers) 
(-3236797006683951166,http://dbpedia.org/resource/Category:Programming_languages) 
(-4159090027031366209,http://dbpedia.org/resource/Anaximenes_of_Miletus) 
(7722304331424482609,http://dbpedia.org/resource/Category:Futurama) 
(-323898215277667127,http://dbpedia.org/resource/AccessibleComputing) 

I verbundenen Komponenten Algorithmus angewendet haben sich auf diesem Graphen, dessen Ausgang, wie unten zu erhalten: -

ccGraph.vertices.foreach(println) 

(6109253945443866644,6109253945443866644) 
(7558506336564503178,-323898215277667127) 
(0,0) 
(-2278222762001827643,-3236797006683951166) 
(-9007336571746445204,-9007336571746445204) 
(-3236797006683951166,-3236797006683951166) 
(-4159090027031366209,-9007336571746445204) 
(7722304331424482609,6109253945443866644) 
(-323898215277667127,-323898215277667127) 

I kann‘ t einen Weg finden, den Vertex-Etikett/Vertex Namen für (vertexID, vertexID) in ccGraph solche zu finden, dass die Ausgabe von transformiert
(vertexID, vertexID) => (vertexLabel, vertexLabel)

aber

Ich habe folgenden Ansatz versucht, versagen

ccGraph.vertices.map({case arr => 
val k1 = graph.vertices.lookup(arr(0)) 
val k2 = graph.vertices.lookup(arr(1)) 
(k1,k2) 
}) 

<console>:51: error: (org.apache.spark.graphx.VertexId, org.apache.spark.graphx.VertexId) does not take parameters 
        ccGraph.vertices.map({case arr => val k1 = graph1.vertices.lookup(arr(0)) 
                         ^
<console>:52: error: (org.apache.spark.graphx.VertexId, org.apache.spark.graphx.VertexId) does not take parameters 
                val k2 = graph1.vertices.lookup(arr(1)) 
+0

Was meinen Sie mit Vertex Label? Wenn Sie einen Stützpunkt drucken, wird er bereits als (vertex_id, vertex_value) angezeigt. – Dikei

+0

Wenn Sie verbundene Komponenten ccGraph drucken, nimmt es die Form (vertexid, vertexid) und nicht das übliche (vertexid, vertexvalue) – user3663737

Antwort

0

der angeschlossenen Komponenten Algorithmus einen neuen Graphen mit dem Scheitelwert auf die Komponenten-ID zu erzeugen. Sie müssen sie mit dem ursprünglichen Diagramm verbinden, wenn Sie den ursprünglichen Wert erhalten möchten.

ccGraph.joinVertices(graph.vertices) { (id, component_id, old_value) => 
    ... 
}