Pyspark 基于少数列的CountDistinct()

Pyspark 基于少数列的CountDistinct(),pyspark,group-by,count,Pyspark,Group By,Count,假设我在PySpark中的数据帧如下所示: cats | letter| pet -------------------- cat1 | A | cat cat1 | A | dog cat2 | B | cat cat2 | B | cat cat2 | A | cat cat1 | B | cat cat1 | B | dog 我想用猫来分组,这样我就可以数字母和宠物了。这意味着,如果这两列对于特定的猫是相同的,那么就有两个重复,我不

假设我在PySpark中的数据帧如下所示:

cats | letter| pet
--------------------
cat1 | A     | cat
cat1 | A     | dog
cat2 | B     | cat
cat2 | B     | cat
cat2 | A     | cat
cat1 | B     | cat
cat1 | B     | dog

我想用猫来分组,这样我就可以数字母和宠物了。这意味着,如果这两列对于特定的猫是相同的,那么就有两个重复,我不计算它们。

countDistinct
应该对您有如下帮助-

df1.groupBy(“猫”).agg(countDistinct(“字母”、“宠物”))
.show(假)
/**
* +----+---------------------------+
*|猫|计数(不同字母,宠物)|
* +----+---------------------------+
*|第1类| 4类|
*|第2类| 2类|
* +----+---------------------------+
*/