You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PySpark中移除DataFrame中的Null记录?

移除Spark DataFrame中值为\N的记录

你的DataFrame里的\N是字符串类型的空值占位符,不是Spark原生的Null值,所以需要通过字符串匹配来过滤掉这些行,以下是常用的实现方式:

Python 版本

方式1:使用filter/where方法(二者等价)

from pyspark.sql import SparkSession

# 初始化SparkSession(如果还没创建的话)
spark = SparkSession.builder.appName("FilterBackslashN").getOrCreate()

# 过滤掉value等于"\N"的行
filtered_df = df.filter(df.value != "\\N")
# 或者用where
# filtered_df = df.where(df.value != "\\N")

方式2:使用取反匹配

如果需要更灵活的匹配逻辑,也可以用~取反结合like:

filtered_df = df.filter(~df.value.like("\\N"))

Scala 版本

方式1:使用filter/where方法

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions.col

val spark = SparkSession.builder.appName("FilterBackslashN").getOrCreate()

val filteredDf = df.filter(col("value") != "\\N")
// 或者用where
// val filteredDf = df.where(col("value") != "\\N")

方式2:使用取反匹配

val filteredDf = df.filter(!col("value").like("\\N"))

注意:代码里的"\\N"是因为字符串中的反斜杠需要转义,确保能精确匹配到DataFrame里的\N值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:01:47