gpt4 book ai didi

scala - Spark 数据帧过滤空值和空格

转载 作者:行者123 更新时间:2023-12-01 09:17:06 24 4
gpt4 key购买 nike

我有一个 spark 数据框,我需要为其过滤特定列的空值和空格。

假设数据框有两列。 col2 既有空也有空白。

col1   col2
1 abc
2 null
3 null
4
5 def

我想过滤掉 col2 为空值或空白的记录。
任何人都可以帮忙解决这个问题。

版本:
Spark1.6.2
斯卡拉 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|
+----+----+

注意:根据您的 Spark 版本,您将需要 !===!= (后者是更当前的选项)。

如果您有 n要满足的条件我可能会使用一个列表来减少 bool 列:
val conds = List(myDF("a").contains("x"), myDF("b") =!= "y", myDF("c") > 2)

val filtered = myDF.filter(conds.reduce(_&&_))

关于scala - Spark 数据帧过滤空值和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41406215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com