我正在寻找一种方法来使用Dataframe中有空数据的文件过滤器。下面是我的示例Dataframe,有两个字段:id和value。值字段中有空值。
val testData = Array((1,"actualstring1"),(2,null),(3,"actualstring2"),(4,"testString1"))
val testDataDF = sc.parallelize(testData).toDF("id", "value")
我使用下面的代码片段过滤掉测试字符串,假设输出有三条记录。令我惊讶的是,我只有以下两项记录:
testDataDF.filter(!col("value").contains("test")).show
结果如下:
+---+-------------+
| id| value|
+---+-------------+
| 1|actualstring1|
| 3|actualstring2|
+---+-------------+
在这里我们看到 id=2
在此筛选过程中被忽略。我现在被困在如何包括行为 id=2
以及我们得到的两行的输出。
谢谢你的帮助
2条答案
按热度按时间k5hmc34c1#
将当前条件替换为默认为
FALSE
:哪里
是布尔文字,并且
返回第一个
NOT NULL
元素,从左边开始计数,或NULL
如果这样的元素不存在。j13ufse22#
你可以测试一下
col("value") != null
在过滤器中: