【发布时间】:2021-06-26 21:04:54
【问题描述】:
在 SparkR (Databricks) 中,我可以根据 A 列和 C 列的分组值计算 B 列的平均值,如下所示:
library(SparkR)
df <- createDataFrame (
list(list(1L, 1, "1", 0.1), list(1L, 2, "1", 0.2), list(3L, 3, "3", 0.3)),
c("a", "b", "c", "d"))
result <- gapplyCollect(
df,
c("a", "c"),
function(key, x) {
y <- data.frame(key, mean(x$b), stringsAsFactors = FALSE)
colnames(y) <- c( "key_a", "key_c", "mean_b")
y
})
这里的源数据框 - df - 用于生成一个新的 - result - 结果 - mean_b for key_a 和 key_c。 这工作正常,但是如何在不创建新数据框的情况下执行相同的操作?这样 mean_b 会作为新列添加到 df 吗?
【问题讨论】:
-
你试过
df <- gapplyCollect(而不是result <- gapplyCollect(吗? -
@AlexOtt - 是的,它被 colnames 部分中的内容覆盖: colnames(y)
标签: r apache-spark sparkr