SparkR:无法创建Spark会话

问题描述 投票:1回答:3

我试图在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

但问题仍未解决。我怎么解决这个问题?

r apache-spark sparkr
3个回答
1
投票

当我设置Java Home和SPARK_HOME时,我在我的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"))

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 \下载\ java中\ jre1.8.0_171”)

这很有效。


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替换路径上的空间。我希望它像我一样。

© www.soinside.com 2019 - 2024. All rights reserved.