我试图在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
。
仍然,问题没有解决。我该怎么解决?
答案 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版本,它对我有用...