2017-08-29 42 views
0
+-------------------+------+---+ 
|   timestamp|status|msg| 
+-------------------+------+---+ 
|2017-01-01 06:15:00| ASC_a| 1| 
|2017-01-01 06:19:00| start| 2| 
|2017-01-01 06:22:00| ASC_b| 2| 
|2017-01-01 06:30:00| null| 2| 
|2017-01-01 10:45:00| ASC_a| 3| 
|2017-01-01 10:50:00| null| 3| 
|2017-01-01 11:22:00| ASC_c| 4| 
|2017-01-01 11:31:00| end| 5| 
+-------------------+------+---+ 

ds.where($"status" =!= "ASC_b").show 

+-------------------+------+---+ 
|   timestamp|status|msg| 
+-------------------+------+---+ 
|2017-01-01 06:15:00| ASC_a| 1| 
|2017-01-01 06:19:00| start| 2| 
|2017-01-01 10:45:00| ASC_a| 3| 
|2017-01-01 11:22:00| ASC_c| 4| 
|2017-01-01 11:31:00| end| 5| 
+-------------------+------+---+ 

我有所有這些空值,因爲我做了兩個數據集的左外連接。 我希望輸出包含空值。
有沒有辦法做到這一點?其中忽略數據集中的空值

回答

2

就否定<=>操作:

import org.apache.spark.sql.functions.not 

ds.where(not($"status" <=> "ASC_b")).show 
+0

感謝。這工作 – user2811630

2

您可以在您的過濾器中的空檢查作爲

ds.where($"status" =!= "ASC_b" || $"status".isNull).show