在 Rstudio 中尝试 运行 Spark 时未找到 spark-cmd

spark-cmd not found when trying to run Spark in Rstudio

我正在按照找到的说明 here on rbloggers 在 redhat 机器上设置 spark。我想在 RStudio 中使用 Spark。

我已经下载 spark-1.6.1-bin-hadoop2.6 并按照说明进行操作,并将以下行放入 RStudio 的脚本中:

# Setting SPARK_HOME
Sys.setenv(SPARK_HOME = "~/Downloads/spark-1.6.1-bin-hadoop2.6")

# Setting library path
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))

library(SparkR)

# create a spark context
sc <- sparkR.init(master = "local")

但是最后一行returns出现如下错误:

Launching java with spark-submit command ~/Downloads/spark-1.6.1-bin-hadoop2.6/bin/spark-submit sparkr-shell /tmp/RtmpSwsYUW/backend_port3752546940e6

sh: ~/Downloads/spark-1.6.1-bin-hadoop2.6/bin/spark-submit: No such file or directory

在问这个问题之前,我已经尝试了互联网上的所有解决方案。例如:

我现在唯一能想到的问题是目录中没有sparkr-shell。它只是 sparkr.cmdsparkr2.cmd。现在我想知道它是否与我下载的 spark 版本有关?我应该先安装hadoop吗?

SparkR 通过 system2 调用 Spark,后者使用 shQuote 引用命令(参见 ?system2?shQuote)。这意味着 ~ 不会展开。

只需指定完整路径:

Sys.setenv(SPARK_HOME = "/home/<youruser>/Downloads/spark-1.6.1-bin-hadoop2.6")

或者自己做路径扩展:

Sys.setenv(SPARK_HOME = path.expand("~/Downloads/spark-1.6.1-bin-hadoop2.6"))

顺便说一句,.cmd 文件是给 Windows 的,所以它们不相关。