【问题标题】:Sparklyr cannot reference table in spark_applySparklyr 无法在 spark_apply 中引用表
【发布时间】:2019-03-16 03:59:07
【问题描述】:

我想使用 spark_apply 来迭代多个数据过程以生成特征。为此,我需要引用已加载到 spark 中的表,但出现以下错误:

错误 sparklyr:RScript (3076) 意外终止:找不到对象“ref_table”

一个可重现的例子:

ref_table <-   sdf_along(sc, 10)
apply_table <- sdf_along(sc, 10)

spark_apply(x = apply_table, 
            f = function(x) {
              c(x, ref_table)
            })

我知道我可以引用函数内部的库,但不确定如何调用数据。我正在通过 rstudio 运行本地 spark 集群。

【问题讨论】:

    标签: r apache-spark sparklyr


    【解决方案1】:

    不幸的是,这里预计会失败。

    Apache Spark,因为基于它的平台,不支持像这样的嵌套转换。您不能在工作代码中使用嵌套转换、分布式对象或 Spark 上下文(spark_connection,如果是 sparklyr)。

    详细解释请查看我对Is there a reason not to use SparkContext.getOrCreate when writing a spark job?的回复。

    您的问题没有提供足够的上下文来确定此处的最佳行动方案,但通常有两种可能的解决方案:

    • 只要其中一个数据集小到可以存储在内存中,就可以直接在闭包中将其用作普通 R 对象。
    • 将您的问题重新表述为join 或笛卡尔积(Spark 的crossJoin)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-21
      • 2018-03-30
      • 1970-01-01
      • 2019-03-23
      • 2018-11-17
      • 2018-05-24
      • 2018-04-20
      • 2018-05-21
      相关资源
      最近更新 更多