【问题标题】:Convert ddply in R to sparkR function将 R 中的 ddply 转换为 sparkR 函数
【发布时间】:2016-07-20 13:46:12
【问题描述】:

我有一个包含数百万行的数据框df。我使用ddply 和用户定义的函数udf

res <- ddply(df, c("id"),function(x){udf(x)} 

这工作得很好,但它非常慢(大约需要 4 个小时)我猜是因为 udf。它检查了很多案例。

我想在 sparkR 中运行相同的功能。 Spark 集成在 R 环境中。我可以在 sparkR 中进行基本操作,但找不到可以替换 ddply 的函数。有人有想法吗?

【问题讨论】:

    标签: r plyr lapply sparkr


    【解决方案1】:

    使用 SparkR 2.0,您可以使用 gapplyCollect 函数来执行类似的操作(按“id”分组,然后在每行的列上应用您自己的函数):

    res <- gapplyCollect(
        df,
        "id",
        function(key, x) {
            y <- data.frame(key, max(x$column1), mean(x$column2), udf(x$column3))
            colnames(y) <- c("id", "max_col1", "mean_col2", "udf_result")
            y
        })
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-08-17
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      相关资源
      最近更新 更多