Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Jupyter笔记本中使用conda环境中的特定Java版本_Java_R_Azure_Jupyter Notebook_Anaconda - Fatal编程技术网

如何在Jupyter笔记本中使用conda环境中的特定Java版本

如何在Jupyter笔记本中使用conda环境中的特定Java版本,java,r,azure,jupyter-notebook,anaconda,Java,R,Azure,Jupyter Notebook,Anaconda,我的总体目标是在我的Jupyter实验室Azure云服务上的R Jupyter笔记本中使用SparkyR。我使用R、SparkyR和Java 8(因为这是SparkyR支持的版本)创建了一个新的conda环境,如下所示: conda create -n r_spark r=3.6 r-essentials r-irkernel openjdk=8 r-sparklyr source activate r_spark R > IRkernel::installspec(user=TRUE,

我的总体目标是在我的Jupyter实验室Azure云服务上的R Jupyter笔记本中使用
SparkyR
。我使用R、SparkyR和Java 8(因为这是SparkyR支持的版本)创建了一个新的conda环境,如下所示:

conda create -n r_spark r=3.6 r-essentials r-irkernel openjdk=8 r-sparklyr
source activate r_spark
R
> IRkernel::installspec(user=TRUE, name="rspark", displayname="R (Spark)") 
当我在此环境中在终端会话中运行R时,一切正常:

R
> system("java -version")
openjdk version "1.8.0_152-release"
OpenJDK Runtime Environment (build 1.8.0_152-release-1056-b12)
OpenJDK 64-Bit Server VM (build 25.152-b12, mixed mode)
> library(sparklyr)
> sc <- spark_connect(master="local")
* Using Spark: 2.3.3
Registered S3 method overwritten by 'openssl':
  method      from
  print.bytes Rcpp
> spark_disconnect(sc)
NULL
>
R
>系统(“java版本”)
openjdk版本“1.8.0_152-release”
OpenJDK运行时环境(build 1.8.0_152-release-1056-b12)
OpenJDK 64位服务器虚拟机(构建25.152-b12,混合模式)
>图书馆(年)
>sc火花塞断开装置(sc)
无效的
>
但是,当我在笔记本电脑中使用相同的“R(Spark)”-内核执行相同的操作时,它使用Java openjdk版本11:

library(sparklyr)
sc <- spark_connect(master="local")
Error in validate_java_version_line(master, version): Java version detected
but couldnt parse version from: openjdk version "11.0.4" 2019-07-16
Traceback: [...]
库(年)

sc@merv的评论让我走上了正确的道路:

使用环境中终端的R控制台中的Sys.getenv(“JAVA\u HOME”)
获取当前的
JAVA\u HOME
-路径:
“/path/to/your/JAVA”


在具有相应环境内核的笔记本中,使用Sys.setenv(JAVA_HOME=“/path/to/your/JAVA”)并开始

我对笔记本电脑的经验有限,对R一无所知,甚至从未听说过SparkyR,所以我所说的一切都要谨慎,但是:你们从哪里推出Jupyter?我猜Jupyter要在您的环境中找到openjdk,您必须从该环境启动Jupyter,但是您的
conda create
命令表明您是从其他地方启动它。实际上,Jupyter笔记本是从Azure云上名为“Jupyter实验室”的专用服务启动的。由于我在这个jupyter web浏览器gui中创建了conda envs,我想这是问题的一部分……在笔记本中,
Sys.getenv(“JAVA_HOME”)
是否正确地指向了env中的JAVA?是否有任何允许设置Java路径的
sparklyr
配置选项?