我正在尋找一種在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
以及我們正在獲得的兩行一起包括在輸出中。
感謝所有幫助