簡體   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