Welche Funktion im Funken wird verwendet, um zwei RDDs mit den Tasten zu kombinieren

Lassen Sie uns sagen, ich habe die folgenden zwei RDDs mit den folgenden Schlüsselpaarwerten.

rdd1 = [ (key1, [value1, value2]), (key2, [value3, value4]) ] 

und

 rdd2 = [ (key1, [value5, value6]), (key2, [value7]) ] 

Nun möchte ich ihnen mit Schlüsselwerten beitreten, also möchte ich zB folgendes zurückgeben?

 ret = [ (key1, [value1, value2, value5, value6]), (key2, [value3, value4, value7]) ] 

Wie kann ich das machen, im Funken mit Python oder Scala? Ein Weg ist zu verbinden beitreten, aber beitreten würde ein Tupel im Tupel erstellen. Aber ich möchte nur ein Tupel pro Schlüsselwertpaar haben.

2 Solutions collect form web for “Welche Funktion im Funken wird verwendet, um zwei RDDs mit den Tasten zu kombinieren”

Ich würde die beiden RDDs und einen reduzierten ByKey zusammenführen, um die Werte zusammenzuführen.

 (rdd1 union rdd2).reduceByKey(_ ++ _) 

Verwenden Sie einfach join und dann die daraus resultierenden rdd.

 rdd1.join(rdd2).map(case (k, (ls, rs)) => (k, ls ++ rs)) 
  • Starten Sie HiveThriftServer programmgesteuert in Python
  • Wie benutzt man die JDBC-Quelle zum Schreiben und Lesen von Daten in (Py) Spark?
  • Welche Programmiersprachen kann ich auf Android Dalvik verwenden?
  • Bootstrapping eines Webservers in Scala
  • Wie benutzt man eine Scala-Klasse in Pyspark
  • Wenn du Python als Unterprozeß anrufst, kann ich es zwingen, im interaktiven Modus zu laufen?
  • Mehrfach-Funken-Bewerbungsunterlagen im Standalone-Modus
  • Python: Umleitung des Teilprozesses Popen stdout zur Protokolldatei
  • Eine Liste oder Karte als Funktionsargumente in Scala einpacken
  • Spark: Wie komme ich Python mit Scala oder Java User Defined Functions?
  • Statisch typisierte Metaprogrammierung?
  • Python ist die beste Programmiersprache der Welt.