Scala 使用带有列名列表的Spark DataFrame筛选器

Scala 使用带有列名列表的Spark DataFrame筛选器,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,我必须使用列表[String]过滤Spark数据帧中的非空列值: val keyList = List("columnA", "columnB", "columnC", "columnD", ...) 对于名为key的单列,语法应为: val nonNullDf = df.filter(col("key").isNotNull) 我的问题是如何将键列表用于上一个过滤器?您可以通过在键列表上执行

我必须使用
列表[String]
过滤Spark数据帧中的非空列值:

val keyList = List("columnA", "columnB", "columnC", "columnD", ...)
对于名为
key
的单列,语法应为:

val nonNullDf = df.filter(col("key").isNotNull)

我的问题是如何将
键列表
用于上一个过滤器?

您可以通过在
键列表
上执行map reduce来生成过滤器

如果要保留所有列均不为空的行,请使用
;如果要保留任何列均不为空的行,请使用

val nonNullDf = df.filter(keyList.map(col(_).isNotNull).reduce(_ and _))