繁体   English   中英

在Spark Scala的dataframe列中过滤NULL值

[英]Filter NULL value in dataframe column of spark scala

我有一个dataframe(df)与以下内容:

+---------+--------------------+
|  col1|        col2           |
+---------+--------------------+
|colvalue1|                NULL|   
|colvalue2|col2value...        |
+------------+-----------------+

我正在尝试基于col2过滤行,如下所示

df.filter(($"col2".isNotNULL) || ($"col2" !== "NULL")  || ($"col2" !== "null")  || ($"col2".trim !== "NULL"))

但是具有NULL的行不进行过滤。 此列显示nullable=true

谁能让我知道我在做什么错误? 我正在使用Spark 1.6。

您的!==表示法错误,应该是=!= ,并且您不能使用$"col2".trim并且因为您使用了|| $"col2".trim ,否定总是正确的 在您的示例中($"col2".isNotNULL)始终为true,因此每行都被过滤。 因此|| 应该小心。

所以正确的形式是

df.filter(!($"col2".isNull || ($"col2" === "NULL") || ($"col2" === "null")))

甚至更好,如果您使用内置函数isnulltrim

df.filter(!(isnull($"col2") || (trim($"col2") === "NULL") || (trim($"col2") === "null")))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM