Ich habe einen Datenrahmen dfMaster, der drei Spalten hat, Vertex1, Vertex2, Gewicht. Ich versuche einen GraphX gerichteten gewichteten Graphen zu erstellen, der Scheitelpunkte von V1 und V2 und Kanten zwischen ihnen mit ihrem entsprechenden Gewicht hat. Ich kann den Rand und Vertex df des erstellen, indem Sie:Spark Scala GraphX: Erstellen eines gewichteten gerichteten Graphen
val edgeDF = dfMaster.select($"vertex1", $"vertex2", $"weight").distinct()
val vertexDF = (dfMaster.select("vertex1").toDF().unionAll(DFMaster.select("vertex2").toDF())).distinct()
Wie kann ich das dann in einen gewichteten Graphen laden? Danke für die Hilfe.
Hey danke für die Hilfe. Die Typen von Vertex1, Vertex2 und Vertex3 sind allesamt Doubles. Ich ging voran und änderte Ihren Code und änderte es in Doppel. Wenn ich jedoch die edgeRDD-Zeile ausgeführt habe, erhalte ich drei Fehler bei Edge [Double] (srcId, dstId, wgt) mit der Fehlermeldung: type mismatch, found Double, erforderlich org.apache.spark.graphx.VertexId. Weißt du was das bedeutet? – mt88
Die Scheitelpunkt-IDs müssen vom Typ Long sein (oder VertexId, das ein Untertyp von Long ist) –
Ich habe den Code für Double-typed data geändert –