【发布时间】:2021-03-26 17:06:17
【问题描述】:
我们如何从以下df 中过滤CID 的值,其中ID 和TS 的组合相同。
df =
| ID | CID | TS |
|---|---|---|
| A | C1 | t1 |
| A | C2 | t1 |
| A | C3 | t2 |
| B | C4 | t2 |
需要输出 DF
| CID |
|---|
| C1 |
| C2 |
谢谢。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql
我们如何从以下df 中过滤CID 的值,其中ID 和TS 的组合相同。
df =
| ID | CID | TS |
|---|---|---|
| A | C1 | t1 |
| A | C2 | t1 |
| A | C3 | t2 |
| B | C4 | t2 |
需要输出 DF
| CID |
|---|
| C1 |
| C2 |
谢谢。
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql
可以获取每个分区的ID和TS的计数,过滤计数大于等于2的行。
from pyspark.sql import functions as F, Window
df2 = df.withColumn(
'cnt',
F.count('*').over(Window.partitionBy('ID', 'TS'))
).filter('cnt >= 2').select('CID')
df2.show()
+---+
|CID|
+---+
| C1|
| C2|
+---+
【讨论】: