共用方式為


renv 在 Azure Databricks 上

renv 是 R 套件,可讓使用者管理筆記本專屬的 R 相依性。

使用 renv ,您可以建立和管理專案的 R 程式庫環境、視需要將這些程式庫的狀態儲存到 lockfile ,以及稍後還原程式庫。 這些工具可協助讓專案更隔離、可移植且可重現。

基本 renv 工作流程

在本節中:

安裝 renv

您可以安裝 renv叢集範圍程式庫筆記本範圍程式庫。 若要安裝 renv 為筆記本範圍的程式庫,請使用:

require(devtools)

install_version(
  package = "renv",
  repos   = "http://cran.us.r-project.org"
)

Databricks 建議使用 CRAN 快照集作為存放庫來 修正套件版本

使用預先安裝的 R 程式庫初始化 renv 會話

使用 renv 時的第一個步驟是使用 renv::init() 初始化會話。 設定 libPaths 為將預設下載位置變更為 R 筆記本範圍程式庫路徑

renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())

用來 renv 安裝其他套件

您現在 renv 可以使用 的 API 來安裝和移除 R 套件。 例如,若要安裝最新版本 digest ,請在筆記本資料格內執行下列命令。

renv::install("digest")

若要安裝舊版 digest 的 ,請在筆記本資料格內執行下列命令。

renv::install("digest@0.6.18")

若要從 GitHub 安裝 digest ,請在筆記本資料格內執行下列命令。

renv::install("eddelbuettel/digest")

若要從Bioconductor 安裝套件,請在筆記本資料格內執行下列命令。

# (note: requires the BiocManager package)
renv::install("bioc::Biobase")

請注意, renv::install API 會使用 轉譯快取

使用 renv 將 R 筆記本環境儲存至 DBFS

儲存環境之前,請先執行下列命令一次。

renv::settings$snapshot.type("all")

這會設定 renv 為快照所有已安裝至 libPaths 的套件,而不只是目前在筆記本中使用的套件。 如需詳細資訊,請參閱 renv 檔

現在您可以在筆記本資料格內執行下列命令,以儲存您環境的目前狀態。

renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)

這會藉由擷取安裝在 上 libPaths 的所有套件來更新 lockfile 。 它也會將從 lockfile 本機檔案系統移至 DBFS,即使叢集終止或重新開機,它仍會保存。

renv從 DBFS 重新安裝提供 lockfile 的環境

首先,請確定您的新叢集執行的是與您第一次建立 renv 環境相同的 Databricks 執行時間版本。 這可確保預先安裝的 R 套件完全相同。 您可以在每個執行時間 的版本資訊中找到這些清單。 安裝轉譯之後,請在筆記本資料格內執行下列命令。

renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths()))
renv::restore(lockfile="/dbfs/PATH/TO/WHERE/YOU/SAVED/renv.lock", exclude=c("Rserve", "SparkR"))

這會從 DBFS 複製到 lockfile 本機檔案系統,然後還原 中指定的 lockfile 任何套件。

注意

若要避免遺失存放 Rserve 庫錯誤,請將 和 SparkR 套件排除在套件還原中。 這兩個套件都預先安裝在所有執行時間中。

renv 緩存

的非常實用功能 renv 是其 全域套件快取,其會在叢集上的所有 renv 專案之間共用。 它會加速安裝時間,並節省磁碟空間。 快 renv 取不會快取透過 devtools API 下載的套件,或 install.packages() 與 以外的 pkgs 任何其他引數一起下載。