Lassen Sie uns sagen, ich habe eine ziemlich große Datenmenge in der folgenden Form:Entfernen Duplikate von Zeilen basierend auf bestimmten Spalten in einer RDD/Spark-Dataframe
data = sc.parallelize([('Foo',41,'US',3),
('Foo',39,'UK',1),
('Bar',57,'CA',2),
('Bar',72,'CA',2),
('Baz',22,'US',6),
('Baz',36,'US',6)])
Was ich möchte, ist doppelte Zeilen auf der Basis tun entfernen Nur Werte der ersten, dritten und vierten Spalte.
völlig doppelte Zeilen zu entfernen ist einfach:
data = data.distinct()
und entweder Zeile 5 oder Zeile 6 wird
aber entfernt werden, wie nur ich doppelte Zeilen entfernen 1 Spalten basierend auf, 3 und 4 nur? das heißt entfernen entweder einen der folgenden:
('Baz',22,'US',6)
('Baz',36,'US',6)
In Python, dies durch die Angabe Spalten mit .drop_duplicates()
getan werden könnte. Wie kann ich das Gleiche in Spark/Pyspark erreichen?
Gibt es eine Möglichkeit, die Datensätze zu erfassen, die es gelöscht hat? – user422930