+-------------------+------+---+
| 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|
+-------------------+------+---+
我有所有这些空值,因为我做了两个数据集的左外连接。 我希望输出包含空值 有没有办法实现这个目标?
答案 0 :(得分:2)
您可以在过滤器中包含空检查
ds.where($"status" =!= "ASC_b" || $"status".isNull).show
答案 1 :(得分:2)
只是否定<=>
运算符:
import org.apache.spark.sql.functions.not
ds.where(not($"status" <=> "ASC_b")).show