首页 > 解决方案 > 从数据框中过滤数据

问题描述

我正在尝试过滤一列为空的数据框中的数据。从源 json 文件中,我得到如下列的值:

col:null

该列的架构将以字符串形式出现。

当我过滤行时,我仍然得到记录。以下命令均无效。不知道我在这里缺少什么。

df.filter($"col" =!= "null")
df.filter($"col" =!= lit("null"))

数据框输出如下

+----------+-------------------+
|RecordCnt |col                |
+----------+-------------------+
|    500000|               null|
+----------+-------------------+

标签: scalaapache-sparkapache-spark-sql

解决方案


您不能使用相等运算符与 null 进行比较。您需要使用is not null,例如

val df2 = df.filter("col is not null")

或在数据框 API 中,

val df2 = df.filter($"col".isNotNull)

推荐阅读