Äquivalent zu left outer join in SPARK
Gibt es einen left outer join entspricht in SPARK SCALA ? Ich verstehen, es ist die join-operation entspricht der Datenbank inner join.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen left outer join entspricht in SPARK SCALA ? Ich verstehen, es ist die join-operation entspricht der Datenbank inner join.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funke Scala hat die Unterstützung von left outer join. Schau mal hier
http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.api.java.JavaPairRDD
Nutzung ist sehr einfach, da
Es ist so einfach wie
rdd1.leftOuterJoin(rdd2)
aber Sie müssen sicherstellen, dass sowohl die rdd ' s sind in der form von (Schlüssel, Wert) für jedes element der rdd ist.Ja, es ist. Haben Sie einen Blick auf die DStream-APIs und haben sowohl Links-als auch rechts-outer-joins.
Wenn Sie einen stream von der Art sagen wir 'Record', und Sie beitreten wollen zwei Ströme von Datensätzen, können Sie dies tun, wie :
Als die APIs, die sagen, die linken und rechten Ströme werden hash-partitioniert. D. H., die Sie ergreifen können, einige Attribute aus einem Datensatz, (oder auf andere Weise) zum berechnen einer Hash-Wert und wandelt es in ein paar DStream.
left
undright
- streams vom TypDStream[(Long, Record)]
bevor Sie anrufen, die verbinden-Funktion. (Es ist nur ein Beispiel. Die Hash-Typ von irgendeinem anderen Typ alsLong
auch.)Spark SQL /Daten-Frame-API unterstützt auch die LINKS - /RECHTS - /FULL äußeren schließt sich direkt:
https://spark.apache.org/docs/latest/sql-programming-guide.html
Wegen dieses Fehlers: https://issues.apache.org/jira/browse/SPARK-11111 outer-joins in der Funke vor 1.6 kann sehr langsam sein (es sei denn, Sie haben wirklich kleine Datenmengen zu verbinden). Es verwendet das kartesische Produkt und dann filtern, bevor 1.6. Nun ist es mit SortMergeJoin statt.