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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。