You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Scala统计DataFrame中所有列的空值总数?

Scala中统计DataFrame各列空值总和的方法

对应Python里的Df.isnull().sum(),Scala可以通过Spark SQL的聚合函数组合实现,以下是两种常用写法:

方法一:生成包含各列空值数的DataFrame

这种方式和Python的输出格式最接近,会生成一个单行DataFrame,每列对应原DataFrame的空值统计结果:

import org.apache.spark.sql.functions._

// 假设你的DataFrame名为df
val nullCountDF = df.agg(
  df.columns.map(colName => count(when(isNull(col(colName)), colName)).alias(s"${colName}_nulls")): _*
)

// 查看结果
nullCountDF.show()

解释:

  • 遍历DataFrame的所有列,对每一列用isNull判断是否为空
  • 用when筛选出空值行,再通过count统计数量
  • 为统计结果列添加_nulls后缀,方便识别

方法二:转换为键值对Map(便于后续逻辑处理)

如果需要把统计结果转为Scala的Map结构,方便直接使用:

// 基于上面的nullCountDF获取Map
val nullCountMap = nullCountDF.head().getValuesMap[Long](nullCountDF.columns)

// 示例:打印某一列的空值数
println(s"列id的空值数:${nullCountMap("id_nulls")}")

内容的提问来源于stack exchange,提问作者unix.thula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:41:11