我正在寻找一种在DataFrame中具有空数据的字段上使用过滤器的方法。 下面是我有两个字段的示例DataFrame:id和value。 值字段中有一个空值。过滤Spark数据框中数据为空值的字符串数据
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
记录在这个过程filteration被忽略。 我现在坚持如何将id=2
以及我们正在获得的两行一起包括在输出中。
感谢所有帮助