Spark scala : iterierbar zu einzelnen Schlüssel-Wert-Paare

Ich habe ein problem mit Funken-Scala Umwandlung eines Iterierbar (CompactBuffer) zu einzelnen Paare.
Ich will erstellen Sie eine neue RDD-mit Schlüssel-Wert-Paare, von denen in der CompactBuffer.

Sieht es wie folgt aus:

CompactBuffer(Person2, Person5)
CompactBuffer(Person2, Person5, Person7)
CompactBuffer(Person1, Person5, Person11)

Den CompactBuffers erhalten konnten mehr Personen als nur 3.
Im Grunde, was ich will, ist eine neue RDD, der die einzelnen Kombinationen der CompactBuffer wie diese (ich möchte auch vermeiden, identische Schlüssel-Werte):

Array[
<Person2, Person5>
<Person5, Person2>
<Person2, Person7>
<Person7, Person2>
<Person5, Person7>
<Person7, Person5>
<Person1, Person5>
<Person5, Person1>
<Person1, Person11>
<Person11, Person1>
<Person5, Person11>
<Person11, Person5>]

Kann mir jemand helfen?

Danke im Voraus

  • Sie wollen also alle Paare von Elementen aus jeder CompactBuffer, aber Sie wollen nicht zu wiederholen, alle Paare kamen aus früheren CompactBuffers?
  • Das ist es, was ich will, in der Tat
  • Das wird nicht sehr gut parallelisieren, da die Ausgabe von einem CompactBuffer hängt von der Geschichte alle vorangegangenen. Es ist also zu haben, um auf einem Knoten ausführen? Wie viele verschiedene Paare erwarten Sie?
  • Es wird eine Menge sein. Vielleicht überspringen Sie einfach die nicht-wiederholenden Teil dann. Ich kann versuchen, damit umzugehen, dass später.
  • Eigentlich bin ich falsch. Wenn Sie berechnen Sie alle Paare, dann RDDs einen distinct Methode, die ich übernehmen wird, verteilt wird. Siehe meine Antwort
InformationsquelleAutor Tooltje | 2014-11-17
Schreibe einen Kommentar