有没有更好的办法?
val mean = df.select(avg("date")).first().getDouble(0)
df.withColumn("mean", lit(mean))
我认为避免采取行动是值得的……
可以使用以下方法避免额外的操作broadcast
具有叉积:
import org.apache.spark.sql.functions.broadcast
df.crossJoin(broadcast(df.agg(avg("date"))))
or:
spark.conf.set("spark.sql.crossJoin.enabled", true)
df.join(broadcast(df.agg(avg("date"))))
你什么不应该做正在使用窗口函数:
df.withColumn("avg", avg("date").over())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)