Ist in spark join die Tabellenreihenfolge wie beim Schwein?

8

Bezieht sich auf Spark - Verbinden von 2 PairRDD-Elementen

Wenn Sie einen regulären Join in einem Schwein ausführen, wird die letzte Tabelle im Join nicht in den Speicher geladen, sondern stattdessen durchgestreamt. Wenn A also eine kleine Kardinalität pro Schlüssel und B eine große Kardinalität hat, ist join A, B deutlich besser join A by B , aus der Leistungsperspektive (Vermeidung von Überlauf und OOM)

Gibt es ein ähnliches Konzept im Funken? Ich habe keine solche Empfehlung gesehen und frage mich, wie ist das möglich? Die Implementierung sieht für mich fast genauso aus wie im Schwein: Ссылка

Oder fehlt mir etwas?

    
ihadanny 24.02.2015, 11:24
quelle

1 Antwort

3

Es macht keinen Unterschied, in Funken wird die RDD nur in den Speicher gebracht, wenn sie zwischengespeichert wird. In Funke, um den gleichen Effekt zu erzielen, können Sie die kleinere RDD zwischenspeichern. Eine andere Sache, die Sie in Funken tun können, die ich bin nicht sicher, dass Schwein tut, ist, wenn alle RDDs zusammengefügt werden, haben den gleichen Partitionierer keine Shuffle muss getan werden.

    
aaronman 24.02.2015, 18:10
quelle