Apache spark 如何使用列的平均值将列添加到数据帧

Apache spark 如何使用列的平均值将列添加到数据帧,apache-spark,dataframe,apache-spark-sql,Apache Spark,Dataframe,Apache Spark Sql,有更好的办法吗 val mean=df.select(平均(“日期”)).first().getDouble(0) df.带列(“平均值”,点亮(平均值)) 我认为避免调用某个操作是值得的…使用带叉积的广播可以避免额外的操作: import org.apache.spark.sql.functions.broadcast df.crossJoin(广播(df.agg(平均(“日期”))) 或: spark.conf.set(“spark.sql.crossJoin.enabled”,true

有更好的办法吗

val mean=df.select(平均(“日期”)).first().getDouble(0)
df.带列(“平均值”,点亮(平均值))

我认为避免调用某个操作是值得的…

使用带叉积的
广播可以避免额外的操作:

import org.apache.spark.sql.functions.broadcast
df.crossJoin(广播(df.agg(平均(“日期”)))
或:

spark.conf.set(“spark.sql.crossJoin.enabled”,true)
加入(广播(平均日期)
你不应该做的是使用窗口功能:

df.withColumn("avg", avg("date").over())