SparkR:无法创建 Spark 会话

SparkR: unable to create the Spark session

我正尝试在 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

问题还是没有解决。我该如何解决?

当我设置 Java 主页和 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"))

我的问题终于解决了。问题出在我的 JAVA_HOME 路径上,它失败了,因为 Program Files 包含 space。

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

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

这有效。

您不必将 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替换了路径上的space。我希望它像我一样工作。

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