Скажем, у меня довольно большой набор данных в следующем виде:
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)])
Что я хотел бы сделать, это удалить повторяющиеся строки, основываясь только на значениях первого, третьего и четвертого столбцов.
Удаление полностью повторяющихся строк является простым:
data = data.distinct()
и либо строка 5, либо строка 6 будут удалены
Но как мне удалять только повторяющиеся строки только на столбцах 1, 3 и 4? то есть удалить один из них:
('Baz',22,'US',6)
('Baz',36,'US',6)
В Python это можно сделать, указав столбцы с .drop_duplicates()
. Как я могу добиться того же в Spark/Pyspark?