Scala Spark数据帧:计算组之间的差异
使用R的dplyr,我将计算组间的方差,如下所示:Scala Spark数据帧:计算组之间的差异,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,使用R的dplyr,我将计算组间的方差,如下所示: df %>% group_by(group) %>% summarise(total = sum(value)) %>% summarise(variance_between_groups = var(total)) 正在尝试对Sparks DataFrame API执行相同的操作: df.groupBy(group).agg(sum(value).alias("total")).agg(var_samp(total).al
df %>% group_by(group) %>% summarise(total = sum(value)) %>% summarise(variance_between_groups = var(total))
正在尝试对Sparks DataFrame API执行相同的操作:
df.groupBy(group).agg(sum(value).alias("total")).agg(var_samp(total).alias("variance_between_groups"))
我在第二个agg
中收到一个错误,说它找不到total
。我显然误解了一些事情,所以任何帮助都将不胜感激 var_samp()
采用字符串类型的列名,因此需要提供如下字符串:
import org.apache.spark.sql.functions._
val df = Seq(
("a", 1.0),
("a", 2.5),
("a", 1.5),
("b", 2.0),
("b", 1.6)
).toDF("group", "value")
df.groupBy("group").
agg(sum("value").alias("total")).
agg(var_samp("total").alias("variance_between_groups")).
show
// +-----------------------+
// |variance_between_groups|
// +-----------------------+
// | 0.9799999999999999|
// +-----------------------+
它还可以采用列(列类型),例如var\u samp($“total”)
。有关更多详细信息,请参阅Spark's