SparkR:无法创建Spark会话

时间:2018-07-16 12:17:15

标签: r apache-spark sparkr

我试图在Windows计算机上运行SparkR。

我在R Studio中运行了以下命令:

library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))

这成功运行了。

我在创建Spark会话时遇到错误:

sparkR.session(master = "local[*]", sparkConfig = list(spark.driver.memory = "2g"))

我遇到以下错误:

Spark package found in SPARK_HOME: C:\Users\p2\Downloads\spark\spark-2.3.1-bin-hadoop2.7\spark-2.3.1-bin-hadoop2.7
Error in value[[3L]](cond) : 
  Java version check failed. Please make sure Java is installed and set JAVA_HOME to point to the installation directory.simpleWarning: running command 'C:\Windows\system32\cmd.exe /c C:\Program Files\Java\jre1.8.0_112\bin\java -version' had status 1

我已经安装了Java 8,并且还设置了JAVA_HOME

仍然,问题没有解决。我该怎么解决?

4 个答案:

答案 0 :(得分:1)

设置Java Home和SPARK_HOME时,我可以通过Sparklyr连接Windows笔记本电脑

java_path <- normalizePath('C:/Program Files/Java/jre1.8.0_66')
Sys.setenv(JAVA_HOME=java_path)
library(sparklyr)
sc <- spark_connect(master = "local")

设置JAVA_HOME之后

library(sparklyr)
sc <- spark_connect(master = "local")
spark_path = sc$spark_home
spark_disconnect(sc)

Sys.setenv(
SPARK_HOME=spark_path
)
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session(master = "local[*]", sparkConfig = list(spark.driver.memory = 
"2g"))

答案 1 :(得分:0)

最后,我的问题解决了。问题出在我的 JAVA_HOME 路径上,但是失败了,因为Program Files包含空格。

我将Java文件夹从Program Files复制到另一个文件夹:C:\\Users\\p2\\Downloads\\java\\jre1.8.0_171,并在JAVA_HOME程序中将其设置为R

  

Sys.setenv(JAVA_HOME =“ C:\ Users \ p2 \ Downloads \ java \ jre1.8.0_171”)

这有效。

答案 2 :(得分:0)

您不必将Java文件夹移至下载位置。以下代码对我有用。

Sys.getenv("JAVA_HOME")
[1] "C:\\Program Files\\Java\\jre1.8.0_171"
Sys.setenv("JAVA_HOME" = "C:\\Progra~1\\Java\\jre1.8.0_171")
Sys.getenv("JAVA_HOME")
[1] "C:\\Progra~1\\Java\\jre1.8.0_171"

符号~1替换路径上的空格。我希望它像我一样工作。

答案 3 :(得分:0)

我观察到另一件事,将路径设置为JRE或JDK文件夹。不再包含Bin。有了新的sparkR版本,它对我有用...