找出组pyspark数据帧中的某一列是否不同



所以我想知道是否有一种很好的方法来比较组中一列的值,例如,如果这些值不完全相同,则将一个新列放入该组。

小示例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|
+----+------+----------+

最新更新