【发布时间】:2018-03-03 03:50:05
【问题描述】:
我希望能够将额外的变量传递给 sparklyr 中 spark_apply 调用的函数。
例如:
# setup
library(sparklyr)
sc <- spark_connect(master='local', packages=TRUE)
iris2 <- iris[,1:(ncol(iris) - 1)]
df1 <- sdf_copy_to(sc, iris2, repartition=5, overwrite=T)
# This works fine
res <- spark_apply(df1, function(x) kmeans(x, 3)$centers)
# This does not
k <- 3
res <- spark_apply(df1, function(x) kmeans(x, k)$centers)
作为一个丑陋的解决方法,我可以通过将值保存到 R 包中然后引用它们来做我想做的事情。即
> myPackage::k_equals_three == 3
[1] TRUE
# This also works
res <- spark_apply(df1, function(x) kmeans(x, myPackage::k_equals_three)$centers)
有没有更好的方法来做到这一点?
【问题讨论】:
标签: r apache-spark sparklyr