如何在Pyspark DataFrame中过滤零值



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

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()

但是,如果没有完整的字符串,是否有能力实现?IE。df.count ...?

您可以使用Spark功能isnull

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

或直接使用方法isNull

df.where(F.col("count").isNull()).show()

另一种执行方式是使用filter API

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

相关内容

  • 没有找到相关文章

最新更新