na().drop() 和 filter(col.isNotNull) 之间的区别 (Apache Spark)

Difference between na().drop() and filter(col.isNotNull) (Apache Spark)

df.na().drop()df.filter(df.col("onlyColumnInOneColumnDataFrame").isNotNull() && !df.col("onlyColumnInOneColumnDataFrame").isNaN()) 之间在语义上是否有任何差异,其中 dfApache Spark Dataframe

或者,如果第一个在 null 之后没有 return(不是字符串 null,而只是一个 null 值),我是否应该将其视为一个错误 onlyColumnInOneColumnDataFrame 而第二个呢?

编辑:也添加了 !isNaN()onlyColumnInOneColumnDataFrame 是给定 Dataframe 中的唯一列。假设它的类型是 Integer.

使用 df.na.drop() 删除包含 any 空值或 NaN 值的行。

使用 df.filter(df.col("onlyColumnInOneColumnDataFrame").isNotNull()) 时,您删除那些仅在 onlyColumnInOneColumnDataFrame.

列中具有空值的行

如果你想达到同样的目的,那就是 df.na.drop(["onlyColumnInOneColumnDataFrame"])

在一种情况下,我不得不 select 记录 NA 或空值或 >=0。我可以通过仅使用 coalesce 函数和 none 以上 3 个函数来做到这一点。

rdd.filter("coalesce(index_column, 1000) >= 0")