簡體   English   中英

如何在 Jupyter 筆記本內部的 conda 環境中使用特定的 Java 版本

[英]How to use specific Java version from a conda environment inside of Jupyter notebook

我的總體目標是在 Jupyter 實驗室的 Azure 雲服務上的 R Jupyter 筆記本中使用sparklyr 我使用 R、sparklyr 和 Java 8(因為這是 sparklyr 支持的版本)創建了一個新的 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)") 

當我在此環境中的終端session 內運行 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(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: [...]

此外system("java -version", intern=TRUE)從筆記本中返回一個空結果。

如何從其環境中告訴筆記本使用 Java 版本?

@merv 的評論讓我走上了正軌:

在環境中終端的 R 控制台中使用Sys.getenv("JAVA_HOME")獲取當前的JAVA_HOME -path: "/path/to/your/java"

在對應環境 kernel 的筆記本中,使用Sys.setenv(JAVA_HOME="/path/to/your/java")即可!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM