例如,我有以下DataFrame
+-----+----+------+
| idx | id | type |
+-----+----+------+
| 0 | 10 | a |
| 1 | 10 | b |
| 2 | 20 | b |
| 3 | 30 | a |
+-----+----+------+
我希望通过以下连续步骤获得这样的子集:
- 获取
id
中的所有type
a- 已过滤的
id
是 10 和 30
- 已过滤的
- 获取
id
与上面相同的所有行- 已选择行
0
,1
和3
- 已选择行
结果子集DataFrame为:
+-----+----+------+
| idx | id | type |
+-----+----+------+
| 0 | 10 | a |
| 1 | 10 | b |
| 3 | 30 | a |
+-----+----+------+
如何在pyspark
中实现呢?预先感谢。
另一个后续问题,如何实现以下目标。
如果步骤更改为:
- 获取
id
与上一行不同的所有行- 选择了行
2
,因为只有该行的id
不是 10 或 30
- 选择了行
结果DataFrame应该是:
+-----+----+------+
| idx | id | type |
+-----+----+------+
| 2 | 20 | b |
+-----+----+------+