假设我想执行如下操作:
library(SparkR)
...
df = spark.read.parquet(<some_address>)
df.gapply(
df,
df$column1,
function(key, x) {
return(data.frame(x, newcol1=f1(x), newcol2=f2(x))
}
)
其中函数的返回有多行。需要明确的是,文档中的示例(遗憾地与 Spark 文档的大部分内容相呼应,其中示例非常简单)并不能帮助我确定这是否会按照我的预期进行处理。
我希望这样做的结果是,对于在 DataFrame 中创建的 k 个组,每个组具有 n_k 个输出行,gapply() 调用的结果将具有 sum(1..k, n_k) 行,其中关键为键 k 中的每个组的每个 n_k 行复制值...但是,模式字段向我表明这不是处理方式-实际上它表明它要么希望将结果推送到单行。
希望这很清楚,尽管是理论上的(对不起,我不能分享我的实际代码示例)。有人可以验证或解释如何实际处理这样的功能吗?