使用Spark中的现有包的功能时出错

时间:2015-06-26 20:18:34

标签: r apache-spark sparkr

所以,我使用链接上给出的步骤安装了SparkR:" https://amplab-extras.github.io/SparkR-pkg/"。我已经使用网站上提供的直接命令从Github存储库安装了它。现在,这里是我的代码:

library(SparkR)
sc <- sparkR.init(master="local")
files <- paste0("NP",1:10,".txt")
func.clique <- function(file)
{
    w <- read.table(file)
    g <- graph.edgelist(cbind(as.character(w$V1),as.character(w$V2)))
    plot(g)
    cli <- cliques(g)
    return (cli)
}
includePackage(sc, igraph)
cliquevalues <- sapply(files,func.clique)

现在,当我直接使用igraph库时,此代码可以正常工作(在RStudio中没有SparkR命令)。但现在,当我执行它时,它会说Error in FUN(X[[i]], ...) : could not find function "graph.edgelist"。可能的原因是什么?我曾尝试将includePackage放在几个地方,但似乎没有任何帮助。请帮忙!谢谢。

1 个答案:

答案 0 :(得分:0)

我会尝试将library(igraph)放在闭包函数中,以及其他不属于基本包的库。类似的东西:

func.clique <- function(file) {

    library(igraph)

    w <- read.table(file)
    g <- graph.edgelist(cbind(as.character(w$V1),as.character(w$V2)))
    plot(g)
    cli <- cliques(g)
    return (cli)
}