jac*_* rk 9 apache-spark pyspark spark-dataframe
我有一个数据帧,我想在其中一列(字符串)中删除所有具有NULL值的行.我可以很容易地得到这个数:
df.filter(df.col_X.isNull()).count()
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下命令删除它.它执行但计数仍然返回为正数
df.filter(df.col_X.isNull()).drop()
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的尝试,但它返回'对象不可调用'错误.
rog*_*one 18
数据帧是不可变的.因此,只应用一个删除非空值的过滤器将创建一个新的数据帧,该数据帧不具有空值的记录.
df = df.filter(df.col_X. isNotNull())
Run Code Online (Sandbox Code Playgroud)
小智 18
请使用drop带subset:
df.na.drop(subset=["col_X"])
Run Code Online (Sandbox Code Playgroud)
要么 is_NotNull
df.filter(df.col_X.isNotNull())
Run Code Online (Sandbox Code Playgroud)
Mik*_*ikA 12
如果要删除任何值为空的行,请使用
df.na.drop() //same as df.na.drop("any") default is "any"
Run Code Online (Sandbox Code Playgroud)
仅当该行的所有值均为空时才删除,请使用
df.na.drop("all")
Run Code Online (Sandbox Code Playgroud)
要通过传递列列表来删除,请使用
df.na.drop("all", Seq("col1", "col2", "col3"))
Run Code Online (Sandbox Code Playgroud)
另一个变化是:
from pyspark.sql.functions import col
df = df.where(col("columnName").isNotNull())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19520 次 |
| 最近记录: |