You need to enable JavaScript to run this app. 如何在PySpark DataFrame中正确筛选出Month列为null的行
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark DataFrame中正确筛选出Month列为null的行

Spark筛选Integer类型空值行的正确方案

问题排查

你现有样例DataFrame结构如下:

YearMonthPlacePeople
2021nullIND23000
2021nullUSA34500
20211UK11600
20211RUS3488

原代码无返回的核心原因是:Spark中整数类型的null是系统定义的缺失值标记,不是字符串内容为'null'的普通值,你将列强转为字符串后和'null'字符串做等值匹配,自然无法命中目标行。

正确实现代码

Spark提供了原生的空值判断方法isNull(),无需做类型转换即可直接匹配所有数据类型的空值行,写法如下:

# 需确保已经导入col函数
from pyspark.sql.functions import col

df = df.select('Year','Month','Place','People') \
                 .where(col('Month').isNull())
display(df)

如果后续需要筛选非空的行,替换为isNotNull()方法即可。

你也可以选择SQL表达式风格的写法,效果完全一致:

df = df.select('Year','Month','Place','People') \
                 .where("Month is null")

内容的提问来源于stack exchange,提问作者user175025

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 04:18:00