PySpark 列的isNull()
方法標識值為空的行。
返回值
PySpark 列 (pyspark.sql.column.Column
)。
例子
考慮以下PySpark DataFrame:
df = spark.createDataFrame([["Alex", 25], ["Bob", 30], ["Cathy", None]], ["name", "age"])
df.show()
+-----+----+
| name| age|
+-----+----+
| Alex| 25|
| Bob| 30|
|Cathy|null|
+-----+----+
識別 PySpark DataFrame 中某些值為空的行
要識別 age
值為 null
的行:
df.select(df.age.isNull()).show()
+-----------------+
|(age IS NOT NULL)|
+-----------------+
| true|
| true|
| false|
+-----------------+
獲取 PySpark DataFrame 中某些值為空的行
要獲取 age
值為 null
的行:
df.where(df.age.isNull()).show()
+-----+----+
| name| age|
+-----+----+
|Cathy|null|
+-----+----+
此處, where(~)
方法獲取與isNull()
方法返回的布爾列中的True
對應的行。
警告 - 使用相等性來比較空值
一種常見的錯誤是使用相等性來比較空值。例如,考慮以下 DataFrame:
df = spark.createDataFrame([["Alex", 25.0], ["Bob", 30.0], ["Cathy", None]], ["name", "age"])
df.show()
+-----+----+
| name| age|
+-----+----+
| Alex|25.0|
| Bob|30.0|
|Cathy|null|
+-----+----+
讓我們獲取 age
等於 None
的行:
from pyspark.sql import functions as F
df.where(F.col("age") == None).show()
+----+---+
|name|age|
+----+---+
+----+---+
請注意 Cathy 的 age
為 null
的行未被選取。比較 null
值時,我們應該始終使用 isNull()
代替。
空值和 NaN 的處理方式不同
考慮以下PySpark DataFrame:
import numpy as np
df = spark.createDataFrame([["Alex", 25.0], ["Bob", np.nan], ["Cathy", None]], ["name", "age"])
df.show()
+-----+----+
| name| age|
+-----+----+
| Alex|25.0|
| Bob| NaN|
|Cathy|null|
+-----+----+
此處, age
列包含 NaN
和 null
。在 PySpark 中,NaN
和 null
被視為不同的實體,如下所示:
df.where(F.col("age").isNull()).show()
+-----+----+
| name| age|
+-----+----+
|Cathy|null|
+-----+----+
在這裏,請注意 Bob 的 age
為 NaN
的行沒有被選取。要獲取包含 NaN
的行,請使用 isnan(-)
方法,如下所示:
df.where(F.isnan("age")).show()
+----+---+
|name|age|
+----+---+
| Bob|NaN|
+----+---+
相關用法
- Python PySpark Column isNotNull方法用法及代碼示例
- Python PySpark Column isin方法用法及代碼示例
- Python PySpark Column getItem方法用法及代碼示例
- Python PySpark Column rlike方法用法及代碼示例
- Python PySpark Column cast方法用法及代碼示例
- Python PySpark Column withField方法用法及代碼示例
- Python PySpark Column endswith方法用法及代碼示例
- Python PySpark Column dropFields方法用法及代碼示例
- Python PySpark Column alias方法用法及代碼示例
- Python PySpark Column otherwise方法用法及代碼示例
- Python PySpark Column contains方法用法及代碼示例
- Python PySpark Column startswith方法用法及代碼示例
- Python PySpark Column substr方法用法及代碼示例
- Python Collections.UserString用法及代碼示例
- Python Collections.UserDict用法及代碼示例
- Python Collections.UserList用法及代碼示例
- Python Django Collate用法及代碼示例
- Python Django ContentTypeManager用法及代碼示例
- Python Condition release()用法及代碼示例
- Python Condition notify()用法及代碼示例
- Python Django ContextMixin.get_context_data用法及代碼示例
- Python Condition wait()用法及代碼示例
- Python Django Coalesce用法及代碼示例
- Python Django Cot用法及代碼示例
- Python Django CoordTransform用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark Column | isNull method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。