【发布时间】:2016-10-31 23:34:04
【问题描述】:
我有一个非常简单的数据框
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
这是我的结果,除了最后 2 行相同,但第一行与其他 2 行不同(因为 null 值)
第二种方法
import pyspark.sql.functions as F
df.agg(F.countDistinct("a","b","c")).show()
1
似乎F.countDistinct 处理null 值的方式对我来说并不直观。
对您来说,它看起来是错误还是正常?如果它是正常的,我怎么能写出完全输出第一种方法的结果但与第二种方法相同的精神。
【问题讨论】:
标签: apache-spark pyspark pyspark-sql