我的 SparkSQL 数据框如下所示:
+-----------+----------+----------+----------+
|a |b |c |d |
+-----------+----------+----------+----------+
| 123| abc| N| 2|
| 123| abc| N| 4|
| 123| abc| X| 3|
| 456| def| K| 1|
| 456| def| X| 4|
+-----------+----------+----------+----------+
我想根据键列删除重复项a
,并且如果该键组合存在一行在 column 中具有值的值,则该重复项在 列 中b
没有值。N
c
N
c
预期输出:
+-----------+----------+----------+----------+
|a |b |c |d |
+-----------+----------+----------+----------+
| 123| abc| N| 2|
| 123| abc| N| 4|
| 456| def| K| 1|
| 456| def| X| 4|
+-----------+----------+----------+----------+
对于组合键a = 123
,b = abc
存在不止一行 where c = N
。因此,我们要删除该组合键 where 的所有行c != N
。
对于组合键a = 456
,b = def
不存在任何行c = N
。因此我们不想删除任何行。
您可以通过以下步骤获得所需的结果: