gpt4 book ai didi

java - Spark (Java) - 添加单个平均值作为新列

转载 作者:行者123 更新时间:2023-12-01 09:41:43 27 4
gpt4 key购买 nike

我有两个数据框,df1df2,我想向第二个数据框添加一个新列。这个新列应该是第一个数据帧中的列的平均值。像这样的事情:

df1                  df2                   df2
userid count value userid count userid count value
11 2 5 10 1 10 1 5
22 3 4 20 1 ======> 20 1 5
33 5 6 30 1 30 1 5

我正在努力

df2 = df2.withColumn("value", avg(df1.col("value")));

这不起作用。我怎样才能做到这一点?谢谢!

最佳答案

类似于Append a column to Data Frame in Apache Spark 1.3

withColum() 应该有一个与 DateFrame 相关的列,因此您可以进行转换:

  • 计算平均值
  • 添加新列时,将原始值设置为0,然后添加平均值

    import org.apache.spark.sql.functions._
    val avgValue = df1.select(avg(df1("value"))).collect()(0).getDouble(0)
    df2 = df2.withColumn("value", rand() * 0 + avgValue)

关于java - Spark (Java) - 添加单个平均值作为新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38399024/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com