Filter Spark DataFrame basiert auf einem anderen Datenrahmen, der Kriterien für die Blacklist angibt

9

Ich habe eine largeDataFrame (mehrere Spalten und Milliarden von Zeilen) und eine smallDataFrame (einzelne Spalte und 10.000 Zeilen).

Ich möchte alle Zeilen aus dem largeDataFrame filtern, wenn die Spalte some_identifier in largeDataFrame mit einer der Zeilen in smallDataFrame übereinstimmt.

Hier ist ein Beispiel:

largeDataFrame

%Vor%

smallDataFrame

%Vor%

gewünschter Ausgang

%Vor%

Hier ist meine hässliche Lösung.

%Vor%

Gibt es eine sauberere Lösung?

    
Powers 06.10.2016, 04:27
quelle

1 Antwort

24

Sie müssen in diesem Fall einen leftanti Join verwenden.

Der linke Anti-Join ist das Gegenteil eines linken Semi-Joins .

Es filtert Daten aus der rechten Tabelle in der linken Tabelle nach einem bestimmten Schlüssel:

%Vor%     
eliasah 06.10.2016, 06:45
quelle