Apache spark 如何在spark scala数据帧中查找所有具有null或NA值的列的列表?

Apache spark 如何在spark scala数据帧中查找所有具有null或NA值的列的列表?,apache-spark,Apache Spark,如何在spark scala数据帧中查找所有具有null或NA值的列名称列表 我尝试了下面的代码,但没有得到预期的结果 val cond = df8.columns.map(x => col(x).isNull || col(x) === "NA") val df = Seq((Some(1.0), Some("NA"), null).toDF("A", "B", "C") 输出列表应包含B和C列 预期结果:列出[B,C]您基本上可以按如下方式筛选每一列并计算空值的数量(在筛选器上添加

如何在spark scala数据帧中查找所有具有null或NA值的列名称列表

我尝试了下面的代码,但没有得到预期的结果

val cond = df8.columns.map(x => col(x).isNull || col(x) === "NA")

val df = Seq((Some(1.0), Some("NA"), null).toDF("A", "B", "C")
输出列表应包含B和C列


预期结果:
列出[B,C]
您基本上可以按如下方式筛选每一列并计算空值的数量(在筛选器上添加更多逻辑以检查空值)


您可以获取列的数组,然后将每个列值作为一个集合进行循环和收集,并检查集合是否包含null

columns()--将给出列的数组

df.select(“column_name”).collect.map(0)).toSet.contains(null)——如果完整列为null,则将给出true

df.columns.map(c => (c, df.filter(col(c).isNotNull && !col(c).isNaN).count()))
    .filter(_._2 < 1)
    .map(_._1)
List[B,C]