我有一个非常简单的数据框
df = spark.createDataFrame([(None,1,3),(2,1,3),(2,1,3)], ['a','b','c'])
+----+---+---+
| a| b| c|
+----+---+---+
|null| 1| 3|
| 2| 1| 3|
| 2| 1| 3|
+----+---+---+
当我申请一个countDistinct
在此数据框上,我发现根据方法不同的结果:
第一种方法
df.distinct().count()
2
这是我的结果,除了最后两行相同,但第一行与其他两行不同(因为空值)
第二种方法
import pyspark.sql.functions as F
df.agg(F.countDistinct("a","b","c")).show()
1
看来是这样的方式F.countDistinct
涉及null
价值对我来说并不直观。
对你来说它看起来是错误还是正常?如果正常的话,我如何编写一些输出与第一种方法完全相同的结果但与第二种方法具有相同精神的东西。