Spark数据框选择该行的任何列中至少有一个null或空白的行
Posted
技术标签:
【中文标题】Spark数据框选择该行的任何列中至少有一个null或空白的行【英文标题】:Spark dataframe select rows with at least one null or blank in any column of that row 【发布时间】:2017-07-25 14:37:08 【问题描述】:我想从一个数据帧创建一个新的数据帧,其中任何列中的至少一个值在 spark 1.5 / scala 中为空或空白。
我正在尝试编写一个泛化函数来创建这个新的数据框。我在其中传递数据框和列列表并创建记录。
谢谢
【问题讨论】:
您可以在 DataFrame 上使用UDF
+ filter()
来完成。例如:***.com/a/40510441/1592191
你能更新样本输入和预期输出吗?
【参考方案1】:
样本数据:
val df = Seq((null, Some(2)), (Some("a"), Some(4)), (Some(""), Some(5)), (Some("b"), null)).toDF("A", "B")
df.show
+----+----+
| A| B|
+----+----+
|null| 2|
| a| 4|
| | 5|
| b|null|
+----+----+
您可以将条件构造为,假设此处的空白表示空字符串:
import org.apache.spark.sql.functions.col
val cond = df.columns.map(x => col(x).isNull || col(x) === "").reduce(_ || _)
df.filter(cond).show
+----+----+
| A| B|
+----+----+
|null| 2|
| | 5|
| b|null|
+----+----+
【讨论】:
以上是关于Spark数据框选择该行的任何列中至少有一个null或空白的行的主要内容,如果未能解决你的问题,请参考以下文章