所以我想知道是否有一种很好的方法来比较组中一列的值,例如,如果这些值不完全相同,则将一个新列放入该组。
小示例df:
name | sex |
---|---|
Anna | 女性 |
Sam | |
Sam安娜 |
您可以检查每组名称的唯一元素数是否等于1:
from pyspark.sql import functions as F, Window
df2 = df.withColumn(
'difference',
F.size(F.collect_set('sex').over(Window.partitionBy('name'))) == 1
)
df2.show()
+----+------+----------+
|name| sex|difference|
+----+------+----------+
|Anna|female| true|
|Anna|female| true|
| Sam| male| false|
| Sam|female| false|
+----+------+----------+