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

Spark多列求均值如何遍历列列表批量生成avg计算表达式?

多列批量求均值表达式生成方案

完全可以通过遍历列名列表的方式批量生成对应表达式,两种语言的正确实现如下:

Scala 实现

核心通过List的map方法批量生成表达式,支持两种写法:

  1. 字符串表达式适配selectExpr
val cols = List("col1", "col2", "col3","col4")
val expressions = cols.map(colName => s"avg($colName) as $colName")

df.selectExpr(expressions:_*)
  1. Column 对象写法
import org.apache.spark.sql.functions.avg

val cols = List("col1", "col2", "col3","col4")
val expressions = cols.map(colName => avg(colName).alias(colName))

df.select(expressions:_*)

PySpark 实现

核心通过列表推导式遍历生成表达式,同样支持两种写法:

  1. Column 对象写法
from pyspark.sql.functions import avg

cols = ["col1", "col2", "col3","col4"]
exprs = [avg(_col).alias(_col) for _col in cols]

df.select(*exprs)
  1. 字符串表达式适配selectExpr
cols = ["col1", "col2", "col3","col4"]
exprs = [f"avg({_col}) as {_col}" for _col in cols]

df.selectExpr(*exprs)

内容的提问来源于stack exchange,提问作者user14710367

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:15:01