R未检测到为使用sparklyr软件包而安装的最新Java版本(1.8)。
config <- spark_config()
config$sparklyr.gateway.port = 10000
config$sparklyr.gateway.connect.timeout = 1
config$sparklyr.gateway.start.wait = 1000
library(sparklyr)
library(dplyr)
library(DBI)
sc <- spark_connect(master="yarn-client", method = c("shell"),config=config, app_name = "sparklyr",version="2.0.0", extensions = sparklyr::registered_extensions())
Error in validate_java_version(spark_home) :
Java version1.6.0.65 detected but 1.7+ is required. Please download and
install Java from https://www.java.com/en/
我更新了Java版本并在Mac终端中确认。然后我重新启动了Rsession:
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -
version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
但是我仍然得到同样的错误过时的Java版本:
Error in validate_java_version(spark_home) :
Java version1.6.0.65 detected but 1.7+ is required. Please download and
install Java from https://www.java.com/en/
知道如何解决这个问题吗?
答案 0 :(得分:1)
当前(从2019年开始,版本0.9.4)sparklyr
需要Java v1.7-1.8,而macOSX上安装的默认版本通常为1.6。
您可以使用
在终端中检查您的版本java -version
如果您得到类似
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)
您需要更新它。如果您安装了brew
,只需执行以下操作:
brew tap caskroom/versions
brew cask install java8
完成后,您可以使用
检查本地计算机上的安装。ls -1 /Library/Java/JavaVirtualMachines/
通常,在重新启动R会话之后,sparklyr
应该识别正确的版本(1.8)。
如果不是这种情况,则可以使用以下命令在JAVA_HOME
中设置R
环境变量:
Sys.setenv(JAVA_HOME = "/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home")
在local
模式下使用RStudio recommended guidelines for connecting时,这对我有用。
我有另一个Java版本,该怎么办?
在调用java8
时键入brew cask install
很重要,否则将安装最新版本的Java。我犯了这个错误,并安装了openjdk version "11.0.2" 2019-01-15
。
如果遇到类似情况,请brew cask remove java
卸载Java并获取所需的正确版本。
此信息来自issue on the sparklyr GitHub Repo和另一个stackOverflow question。
答案 1 :(得分:0)
我能够通过从以下网站安装最新的JAVA版本来解决这个问题:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
您可以通过在mac终端上运行以下命令来进一步检查版本是否已成功更新:
java -version
现在我可以使用sparklyr包了。