相关疑难解决方法(0)

根据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)])
Run Code Online (Sandbox Code Playgroud)

我想要做的是仅根据第一,第三和第四列的值删除重复的行.

删除完全重复的行很简单:

data = data.distinct()
Run Code Online (Sandbox Code Playgroud)

第5行或第6行将被删除

但是,我如何仅删除基于第1,3和4列的重复行?即删除以下任何一个:

('Baz',22,'US',6)
('Baz',36,'US',6)
Run Code Online (Sandbox Code Playgroud)

在Python中,这可以通过使用指定列来完成.drop_duplicates().我怎样才能在Spark/Pyspark中实现同样的目标?

apache-spark apache-spark-sql pyspark

53
推荐指数
6
解决办法
9万
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

pyspark ×1