在 Spark (Scala) 中计算数据帧列中的空值

ser*_*eda 3 scala apache-spark apache-spark-sql

我正在尝试计算 DataFrame 中列中的空值,如下所示:

df.filter((df(colname) === null) || (df(colname) === "")).count()
Run Code Online (Sandbox Code Playgroud)

其中colname有一个列的名称。如果列类型为字符串,则此方法工作正常,但如果列类型为整数并且存在一些空值,则此代码始终返回 0。为什么会这样?如何改变它才能使其发挥作用?

Ram*_*jan 5

df.filter((df(colname) === null) || (df(colname) === "")).count()正如在适用于数据类型的问题中提到的String,但测试表明null未处理。

@Psidom 的答案同时处理nullandempty处理 for NaN

检查.isNaN应该处理所有三种情况

df.filter(df(colName).isNull || df(colName) === "" || df(colName).isNaN).count()
Run Code Online (Sandbox Code Playgroud)