假设我有一个相当大的数据集,其形式如下:
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 列删除重复行呢? IE。删除其中之一:
('Baz', 22, 'US', 6)
('Baz', 36, 'US', 6)
在 Python 中,这可以通过指定列来完成.drop_duplicates()
。如何在 Spark/PySpark 中实现相同的目标?