我有一个数据帧,我想在其中一列(字符串)中删除所有具有NULL值的行。我可以很容易地得到这个数:
df.filter(df.col_X.isNull()).count()
我尝试使用以下命令删除它。它执行但计数仍然返回为正数
df.filter(df.col_X.isNull()).drop()
我尝试了不同的尝试,但它返回'对象不可调用'错误。
数据帧是不可变的。因此,只应用一个删除非空值的过滤器将创建一个新的数据帧,该数据帧不具有空值的记录。
df = df.filter(df.col_X. isNotNull())
使用drop
和subset
:
df.na.drop(subset=["col_X"])
或者is_NotNull
df.filter(df.col_X.isNotNull())
你有时也可以添加空字符串条件
df = df.filter(df.col_X. isNotNull() | df.col_X != "")
另一种变化是:
from pyspark.sql.functions import col
df = df.where(col("columnName").isNotNull())