Spark DataFrame过滤零和空格



我有一个火花数据框架,我需要为特定列过滤空和空格。

说dataFrame有两个列。col2既有空物又空白。

col1   col2
1      abc
2      null
3      null
4   
5      def

我想将过滤器应用于具有col2为空或空白的记录。任何人都可以为此提供帮助。

版本:Spark1.6.2Scala 2.10

标准逻辑运算符在Spark Column S:

上定义
scala> val myDF = Seq((1, "abc"),(2,null),(3,null),(4, ""),(5,"def")).toDF("col1", "col2")
myDF: org.apache.spark.sql.DataFrame = [col1: int, col2: string]
scala> myDF.show
+----+----+
|col1|col2|
+----+----+
|   1| abc|
|   2|null|
|   3|null|
|   4|    |
|   5| def|
+----+----+

scala> myDF.filter(($"col2" =!= "") && ($"col2".isNotNull)).show
+----+----+
|col1|col2|
+----+----+
|   1| abc|
|   5| def|
+----+----+

注意:根据您的火花版本,您需要!===!=(后者是更新的选项)。

如果您有n条件要满足,我可能会使用列表来减少布尔列:

val conds = List(myDF("a").contains("x"), myDF("b") =!= "y", myDF("c") > 2)
val filtered = myDF.filter(conds.reduce(_&&_))

相关内容

  • 没有找到相关文章

最新更新