【发布时间】:2020-07-20 10:44:42
【问题描述】:
我有一个动态创建的 Spark 数据框,当任何一列为“假”时,我需要过滤数据框并将其存储在一个表中,并将没有任何列为假的行存储在一个表中。永远不会知道列名和列数。
例如,如果我的表是
Col1 Col2 Col3
Row1 True False False
Row2 True True True
Row3 False False True
Row4 False False False
输出应该是表1:
Col1 Col2 Col3
Row1 True False False
Row3 False False True
Row4 False False False
和表2
Col1 Col2 Col3
Row2 True True True
我试过了:
val columns: Array[String] = testDF.columns
val seqDfs: Seq[DataFrame] = columns.map(name => df.filter(s"$name == 'False'"))
val output: DataFrame = seqDfs.reduceRight(_ union _)
但它会返回很多重复值,即使我清除了重复值,它也无助于创建表 2,因为表 2 中的所有行都必须为真。
任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: scala dataframe apache-spark