通过


DataFrameNaFunctions 类

用于处理 DataFrame 中缺失数据的功能。

支持 Spark Connect

Syntax

DataFrame.na

方法

方法 说明
drop(how, thresh, subset) 返回一个新的数据帧省略具有 null 或 NaN 值的行。
fill(value, subset) 返回一个新的 DataFrame,其中包含由指定值替换的 null 值。
replace(to_replace, value, subset) 返回一个新的 DataFrame,将值替换为另一个值。

示例

删除具有 null 值的行

from pyspark.sql import Row

df = spark.createDataFrame([
    Row(age=10, height=80.0, name="Alice"),
    Row(age=5, height=None, name="Bob"),
    Row(age=None, height=None, name="Tom"),
])

df.na.drop().show()
+---+------+-----+
|age|height| name|
+---+------+-----+
| 10|  80.0|Alice|
+---+------+-----+

填充 null 值

df = spark.createDataFrame([
    (10, 80.5, "Alice"),
    (5, None, "Bob"),
    (None, None, "Tom")],
    schema=["age", "height", "name"])

df.na.fill({'age': 50, 'name': 'unknown'}).show()
+---+------+-------+
|age|height|   name|
+---+------+-------+
| 10|  80.5|  Alice|
|  5|  NULL|    Bob|
| 50|  NULL|unknown|
+---+------+-------+

替换值

df = spark.createDataFrame([
    (10, 80, "Alice"),
    (5, None, "Bob"),
    (None, 10, "Tom")],
    schema=["age", "height", "name"])

df.na.replace(['Alice', 'Bob'], ['A', 'B'], 'name').show()
+----+------+----+
| age|height|name|
+----+------+----+
|  10|    80|   A|
|   5|  NULL|   B|
|NULL|    10| Tom|
+----+------+----+