我想使用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集群。
答案 0 :(得分:0)
不幸的是,这里的失败是可以预期的。
Apache Spark以及基于它的平台不支持像这样的嵌套转换。您不能通过工作人员代码使用嵌套的转换,分布式对象或Spark上下文(在spark_connection
情况下使用sparklyr
)。
有关详细说明,请查看我对Is there a reason not to use SparkContext.getOrCreate when writing a spark job?的回答。
您的问题没有给出足够的背景信息来确定最佳的解决方案,但总的来说,有两种可能的解决方案:
join
或笛卡尔积(Spark的crossJoin
)。