pyspark 数据框中所有列的总计数为零

Posted

技术标签:

【中文标题】pyspark 数据框中所有列的总计数为零【英文标题】:Total zero count across all columns in a pyspark dataframe 【发布时间】:2018-08-20 12:41:32 【问题描述】:

我需要在 pyspark 数据框中的所有列中找到零的百分比。如何在数据框中的每一列中找到零的计数?

P.S:我尝试将数据框转换为 pandas 数据框并使用 value_counts。但是对于大型数据集,推断它的观察是不可能的。

【问题讨论】:

可能重复:Spark DataFrame: Computing row-wise mean (or any aggregate operation) 和 Apply a transformation to multiple columns pyspark dataframe 【参考方案1】:

“如何在数据框中的每一列中找到零的计数?”

第一:

import pyspark.sql.functions as F
df_zero = df.select([F.count(F.when(df[c] == 0, c)).alias(c) for c in df.columns])

第二:然后你可以看到计数(与.show()相比,这给你更好的视野。速度也没有太大的不同):

df_zero.limit(2).toPandas().head()

享受吧! :)

【讨论】:

【参考方案2】:

使用此代码在表格的列中查找0 的数量。

只需将Tablename"column name" 替换为适当的值即可:

Tablename.filter(col("column name")==0).count()

【讨论】:

以上是关于pyspark 数据框中所有列的总计数为零的主要内容,如果未能解决你的问题,请参考以下文章

如何更改pyspark数据框中列的顺序?

PYSPARK:如何在 pyspark 数据框中找到两列的余弦相似度?

PySpark数据框显示错误的值

pyspark:比较给定列的值时从数据框中获取公共数据

Pyspark - 基于数据框中的 2 列的不同记录

在pyspark数据框中的两个日期之间生成每月时间戳