spark dataframe groupping does not count nulls



我有一个火花数据框架,该框架由contrement contregement contregement:

汇总:
df.groupBy('a').agg(count("a")).show
+---------+----------------+
|a        |count(a)        |
+---------+----------------+
|     null|               0|
|      -90|           45684|
+---------+----------------+

df.select('a').filter('aisNull').count

返回

warning: there was one feature warning; re-run with -feature for details
res9: Long = 26834

清楚地表明最初未计数零值。

这种行为的原因是什么?我本来可以预期的(如果null在分组结果中完全包含)将正确查看计数。

是的,应用于特定列的count不计算null值。如果要包含零值,请使用:

df.groupBy('a).agg(count("*")).show

这种行为的原因是什么?

SQL-92标准。特别是(强调我的):

令t为a<设置函数规范的参数或参数来源>。

如果指定了计数(*),则结果是t。

的基数

否则,让TX为单列表,是将< value表达式>在t 的每一行中应用并消除null值

的结果。

如果指定了不同的情况,请让TXA是消除TX中冗余重复值的结果。否则,让TXA成为 tx。

如果指定计数,则 结果是TXA的基数。

value_counts(dropna = false)pyspark的等效:

from pyspark.sql import functions as f
df.groupBy('a').agg(f.count('*')).orderBy('count(1)',ascending=False).show()

相关内容

  • 没有找到相关文章

最新更新