在对PySpark中具有空值的列应用聚合函数(如count,sum)时出现问题

问题描述 投票:1回答:1

我们有以下输入数据帧。

DF1


Dep |性别|薪水| DOB |地方

金融|男| 5000 | 2009-02-02 00:00:00 |英国

HR |女性| 6000 | 2006-02-02 00:00:00 | null

HR |男性| 14200 | null | US

IT |男| null | 2008-02-02 00:00:00 | null

IT |男性| 55555 | 2008-02-02 00:00:00 |英国

市场营销|女性| 12200 | 2005-02-02 00:00:00 |英国


使用以下代码查找计数:

    df = df1.groupBy(df1['Dep'])
    df2 =  df.agg({'Salary':'count'})
    df2.show()

结果是:


Dep | count(薪水)

财务| 1

HR | 2

营销| 1

IT | 1


预期结果如下所示。


Dep | count(薪水)

财务| 1

HR | 2

营销| 1

IT | 2


此问题附带第4行数据,其中薪资数据为空。并且null上的count操作不起作用。

感谢您帮助解决此问题。

pyspark
1个回答
0
投票

您可以替换空值:

df \
    .na.fill({'salary':0}) \
    .groupBy('Dep') \
    .agg({'Salary':'count'})
© www.soinside.com 2019 - 2024. All rights reserved.