我试图在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 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"))
最后我解决了我的问题。问题在于我的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”)
这很有效。
您不必将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
替换路径上的空间。我希望它像我一样。