Scala 火花过滤器功能在不需要时过滤空值
火花过滤器功能在不应过滤空值时过滤空值。我的状况<代码>$“测试”=!=“T”不应删除空行Scala 火花过滤器功能在不需要时过滤空值,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,火花过滤器功能在不应过滤空值时过滤空值。我的状况$“测试”=!=“T”不应删除空行 val seq = Seq((null, "T"),(null, "F"),(null, "F"),("F", "F"),("T", "C")) import spark.implicits._ val df = spark.sparkContext.paralleliz
val seq = Seq((null, "T"),(null, "F"),(null, "F"),("F", "F"),("T", "C"))
import spark.implicits._
val df = spark.sparkContext.parallelize(seq).toDF("test","bala")
df.show()
df.filter($"test" =!= "T").show()
将null与任何内容进行比较将返回null,该值在筛选器中被转换为False。要解决这个问题,您可以使用
!eqNullSafe
,例如
df.filter(!$"test".eqNullSafe("T")).show
+----+----+
|test|bala|
+----+----+
|null| T|
|null| F|
|null| F|
| F| F|
+----+----+
将null与任何内容进行比较将返回null,该值在筛选器中被转换为False。要解决这个问题,您可以使用
!eqNullSafe
,例如
df.filter(!$"test".eqNullSafe("T")).show
+----+----+
|test|bala|
+----+----+
|null| T|
|null| F|
|null| F|
| F| F|
+----+----+