pyspark只保留一种类型的群



假设我想检查同一组的不同名称计数,并且我只想在该组中保留一个名称。

df.groupBy('job','age','gender').agg(countDistinct('name')).filter('count(DISTINCT name)>1').show()
>
jobagegendercount(DISTINCT名称(
工程师22M

您可以使用rank窗口函数。

w = Window.partitionBy('job', 'age', 'gender').orderBy(desc('name'))
df = (df.withColumn('rnk', rank().over(w))
.filter(col('rnk') == 1))

最新更新