R中的并行或雪地套件能否与spark cluster接口?

R中的并行或雪地套件能否与spark cluster接口?,r,apache-spark,parallel-processing,snow,bnlearn,R,Apache Spark,Parallel Processing,Snow,Bnlearn,我正在处理R中的一个计算密集型包。这个包没有与Spark集群接口的替代实现;但是,它确实有一个可选参数,用于接收使用并行包创建的集群。我的问题是,我是否可以使用类似SparkyR的东西连接到spark群集,然后将该spark群集作为makeCluster命令的一部分传递到我的函数中 我已经成功地让集群与并行机一起工作,但我不知道如何或是否有可能利用spark集群 library(bnlearn) library(parallel) my_cluster <- makeCluster(3)

我正在处理R中的一个计算密集型包。这个包没有与Spark集群接口的替代实现;但是,它确实有一个可选参数,用于接收使用并行包创建的集群。我的问题是,我是否可以使用类似SparkyR的东西连接到spark群集,然后将该spark群集作为makeCluster命令的一部分传递到我的函数中

我已经成功地让集群与并行机一起工作,但我不知道如何或是否有可能利用spark集群

library(bnlearn)
library(parallel)

my_cluster <- makeCluster(3)
...
pc_structure <- pc.stable(train[,-1], cluster = my_cluster)
库(bnlearn)
图书馆(平行)

我的_cluster如果这能解决您的问题(如果我理解正确的话),我会将您使用并行包的代码包装到sparkR函数中,例如
spark.lappy
(或者类似于SparkyR的东西,我没有这方面的经验)

我假设您的Spark cluster是基于Linux的,因此应该使用并行包中的
mcapply
函数(而不是Windows上的
makeCluster
和随后的
clusterExport

例如,对列表中每个元素的数字进行汇总的本地执行任务(在Linux上):

使用Spark cluster执行相同任务10000次:

input = list(c(1,2,3), c(1,2,3,4), c(1,2,3,4,5))
save(input, file="/path/testData.RData")

res = spark.lapply(1:10000, function(x){
                    library(parallel)
                   load("/path/testData.RData")
                    mclapply(X=input, FUN=sum, mc.cores=3)
                    })

问题是您的代码是否可以这样调整

如果这能解决您的问题(如果我理解正确的话),我会将您使用并行包的代码包装到sparkR函数中,例如
spark.lappy
(或者SparkyR中类似的东西,我对此没有经验)

我假设您的Spark cluster是基于Linux的,因此应该使用并行包中的
mcapply
函数(而不是Windows上的
makeCluster
和随后的
clusterExport

例如,对列表中每个元素的数字进行汇总的本地执行任务(在Linux上):

使用Spark cluster执行相同任务10000次:

input = list(c(1,2,3), c(1,2,3,4), c(1,2,3,4,5))
save(input, file="/path/testData.RData")

res = spark.lapply(1:10000, function(x){
                    library(parallel)
                   load("/path/testData.RData")
                    mclapply(X=input, FUN=sum, mc.cores=3)
                    })

问题是您的代码是否可以这样调整

或者,我可以连接Spark正在利用RStudio服务器关闭的基础EMR群集吗?或者,我可以连接Spark正在利用RStudio服务器关闭的基础EMR群集吗?
input = list(c(1,2,3), c(1,2,3,4), c(1,2,3,4,5))
save(input, file="/path/testData.RData")

res = spark.lapply(1:10000, function(x){
                    library(parallel)
                   load("/path/testData.RData")
                    mclapply(X=input, FUN=sum, mc.cores=3)
                    })