【问题标题】:how can I get the number of each column's non-empty value / empty value?如何获取每列的非空值/空值的数量?
【发布时间】:2021-06-01 15:03:26
【问题描述】:

我在一个名为 ele_df 的数据框中有 100 多列, 我想获取每列的非空值的数量,并让数字显示在具有相应列名的表中。

但是当我在下面尝试这段代码时:

from pyspark.sql.functions import col, count, isnan, lit, sum

def count_not_null(c, nan_as_null=False):
    pred = col(c).isNotNull() & (~isnan(c) if nan_as_null else lit(True))
    return sum(pred.cast("integer")).alias(c)

ele_df.agg(*[count_not_null(c) for c in ele_df.columns]).show()

它返回给我:

|74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506|74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 74876506| 这意味着每个单元格都有一个值,但事实是有很多像这样的空单元格:

    +-------------+---------------------+---------------------+
    |Business_ID_2|Elementum_Attribute_5|Elementum_Attribute_6|
    +-------------+---------------------+---------------------+
    |             |                     |                     |
    |             |                     |                     |
    |             |                     |                     |
    |             |                     |                     |
    |             |                     |                     |
    |             |                     |                     |
    |             |                     |                     |

当我对这些列使用 distinctCount() 时,它都返回一个,我猜它会将空值视为实际值?

请帮我解决这个问题

【问题讨论】:

    标签: sql dataframe pyspark


    【解决方案1】:

    distinctCount does not count nulls,这表明您数据中的空行不为空,而是可能为空字符串,例如''.

    您可以尝试添加检查大小或是否等于空字符串。类似的东西

    pred = (
      (col(c).isNotNull())
      & (~isnan(c) if nan_as_null else lit(True))
      & (col(c) != '')
    )
    

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 2020-09-04
      相关资源
      最近更新 更多