如何在pyspark数据帧中过滤空值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在pyspark数据帧中过滤空值?相关的知识,希望对你有一定的参考价值。

假设我们有一个简单的数据帧:

from pyspark.sql.types import *

schema = StructType([
StructField('id', LongType(), False),
StructField('name', StringType(), False),
StructField('count', LongType(), True),
])
df = spark.createDataFrame([(1,'Alice',None), (2,'Bob',1)], schema)

问题是如何检测空值?我尝试了以下方法:

df.where(df.count == None).show()
df.where(df.count is 'null').show()
df.where(df.count == 'null').show()

它导致错误:

condition should be string or Column

我知道以下工作:

df.where("count is null").show()

但是有没有办法在没有完整字符串的情况下实现?即df.count ...?

答案

您可以使用Spark函数

from pyspark.sql import functions as F
df.where(F.isnull(F.col("count"))).show()
另一答案

另一种方法是使用filter api

from pyspark.sql import functions as F
df.filter(F.isnull("count")).show()

以上是关于如何在pyspark数据帧中过滤空值?的主要内容,如果未能解决你的问题,请参考以下文章

PySpark-如何从此数据框中过滤行

Pyspark:根据每行空值的数量过滤数据框

如何使用 spark.read.jdbc 读取不同 Pyspark 数据帧中的多个文件

如何根据来自其他 pyspark 数据帧的日期值过滤第二个 pyspark 数据帧?

Pyspark Dataframe - 如何过滤掉另一个数据框中匹配的记录?

根据另一个数据帧过滤 pyspark 数据帧