繁体   English   中英

如何获取 PySpark 列中缺失值的数值?

[英]How to get the numeric value of missing values in a PySpark column?

我正在使用 PySpark 处理 OpenFoodFacts 数据集 有很多列完全由缺失值组成,我想删除这些列。 我一直在寻找方法来检索每列缺失值的数量,但它们以表格格式显示,而不是实际给我 null 总值的数值。

以下代码显示列中缺失值的数量,但以表格格式显示:

from pyspark.sql.functions import col, isnan, when, count
data.select([count(when(isnan("column") | col("column").isNull(), "column")]).show()

我尝试了以下代码:

  • 这个没有按预期工作,因为它没有删除任何列(如预期的那样)
for c in data.columns:
    if(data.select([count(when(isnan(c) | col(c).isNull(), c)]) == data.count()):
        data = data.drop(c)

data.show()
  • 这个我目前正在尝试但需要很长时间才能执行
for c in data.columns:
    if(data.filter(data[c].isNull()).count() == data.count()):
        data = data.drop(c)

data.show()

有没有办法只获得号码? 谢谢

如果您需要数字而不是以表格格式显示,则需要使用.collect() ,即:

list_of_values = data.select([count(when(isnan("column") | col("column").isNull(), "column")]).collect()

你得到的是一个Row的列表,里面包含了表中的所有信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM