Ich versuche, Algorithmus der Suche disjunkte Sätze (verbundene Komponenten/union-find) auf große Menge von Daten mit Apache Funke zu finden. Problem ist die Menge der Daten. Sogar die rohe Darstellung eines Graphenscheitelpunktes passt nicht zu einer einzelnen Maschine. Kanten passen auch nicht in den Widder.Disjunkte Sätze auf Apache Funke
Quelldaten sind Textdatei von Graph Kanten auf hdfs: "ID1 \ t ID2".
ID vorhanden als Zeichenfolgenwert, nicht int.
Naive Lösung, die ich gefunden ist:
- nehmen rdd von Kanten ->
[id1:id2] [id3:id4] [id1:id3]
- Gruppe von Schlüsselkanten. ->
[id1:[id2;id3]][id3:[id4]]
- für jeden Datensatz zu jeder Gruppe mindestens id eingestellt ->
(flatMap) [id1:id1][id2:id1][id3:id1][id3:id3][id4:id3]
- Rückwärts RDD von Stufe 3
[id2:id1] -> [id1:id2]
leftOuterJoin
von RDDs aus Stufe 3 und 4- Wiederholen von Stufe 2, während einer Größe von RDD auf Schritt 3 würde nicht
ändern Aber dies führt zu der Übertragung großer Datenmengen zwischen dem Knoten (shuffling)
Irgendwelche Ratschläge?
ich, dass graphx hätte denken würde, was man in (Link gebaut brauchen: http://spark.apache.org/ graphx /) –