Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
renv ist ein R-Paket, mit dem Benutzer R-Abhängigkeiten für das Notebook verwalten können.
Mit renv können Sie die R-Bibliotheksumgebung für Ihr Projekt erstellen und verwalten, den Zustand dieser Bibliotheken in lockfile speichern, und die Bibliotheken später bei Bedarf wiederherstellen. Zusammen können diese Tools dazu beitragen, dass Projekte besser isoliert, portierbar und reproduzierbar sind.
Grundlegender renv-Workflow
Inhalt dieses Abschnitts:
-
Installieren Sie
renv. -
Initialisieren einer
renv-Sitzung mit vorinstallierten R-Bibliotheken -
Verwendung von
renvzur Installation zusätzlicher Pakete -
Verwendung von
renvzum Speichern Ihrer R-Notebook-Umgebung auf DBFS -
Neuinstallation einer
renv-Umgebung angesichts vonlockfileaus DBFS
Installieren renv
Sie können renv als clusterspezifische Bibliothek oder als notebookspezifische Bibliothek installieren. Um renv als notebookspezifische Bibliothek zu installieren, verwenden Sie:
require(devtools)
install_version(
package = "renv",
repos = "http://cran.us.r-project.org"
)
Databricks empfiehlt, eine CRAN-Momentaufnahme als Repository zu verwenden, um die Paketversion zu korrigieren.
Initialisieren einer renv-Sitzung mit vorinstallierten R-Bibliotheken
Der erste Schritt bei der Verwendung von renv ist das Initialisieren einer Sitzung mithilfe von renv::init(). Legen Sie libPaths fest, um den standardmäßigen Speicherort für das Herunterladen so zu ändern, dass er dem Pfad zu Ihrer notebookspezifischen R-Bibliothek entspricht.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths()))
Verwendung von renv zur Installation zusätzlicher Pakete
Sie können jetzt die API verwenden renv, um R-Pakete zu installieren und zu entfernen. Um beispielsweise die neueste Version von digest zu installieren, führen Sie den folgenden Befehl innerhalb einer Notebook-Zelle aus.
renv::install("digest")
Um eine alte Version von digest zu installieren, führen Sie Folgendes in einer Notebook-Zelle aus.
renv::install("digest@0.6.18")
Um digest von GitHub zu installieren, führen Sie Folgendes in einer Notebook-Zelle aus.
renv::install("eddelbuettel/digest")
Um ein Paket von Bioconductor zu installieren, führen Sie Folgendes in einer Notebook-Zelle aus.
# (note: requires the BiocManager package)
renv::install("bioc::Biobase")
Beachten Sie, dass die renv::install API den renv Cache verwendet.
Verwendung von renv zum Speichern Ihrer R-Notebook-Umgebung auf DBFS
Führen Sie den folgenden Befehl einmal aus, bevor Sie die Umgebung speichern.
renv::settings$snapshot.type("all")
Dadurch wird renv so eingestellt, dass eine Momentaufnahme aller Pakete erstellt wird, die in libPaths installiert sind, nicht nur derjenigen, die derzeit im Notebook verwendet werden. Weitere Informationen finden Sie in der renv-Dokumentation.
Nun können Sie Folgendes innerhalb einer Notebook-Zelle ausführen, um den aktuellen Zustand Ihrer Umgebung zu speichern.
renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)
Dadurch wird lockfile aktualisiert, indem alle auf libPaths installierten Pakete erfasst werden. Außerdem wird lockfile vom lokalen Dateisystem ins DBFS verschoben, wo es auch dann erhalten bleibt, wenn Ihr Cluster beendet oder neu gestartet wird.
Neuinstallation einer renv-Umgebung angesichts von lockfile aus DBFS
Vergewissern Sie sich zunächst, dass auf Ihrem neuen Cluster eine identische Databricks Runtime-Version läuft wie auf dem Cluster, auf dem Sie die renv-Umgebung zuerst erstellt haben. Dadurch wird sichergestellt, dass die vorinstallierten R-Pakete identisch sind. Sie finden eine Liste dieser Elemente in den Versionshinweisen jeder Laufzeit. Führen Sie nach der Installation renv folgendes innerhalb einer Zelle eines Notizbuchs aus.
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"))
Dadurch wird lockfile aus dem DBFS in das lokale Dateisystem kopiert, und alle in lockfile angegebenen Pakete werden wiederhergestellt.
Hinweis
Um Fehler durch fehlende Repositorys zu vermeiden, schließen Sie die Pakete Rserve und SparkR von der Wiederherstellung aus. Beide Pakete sind in allen Runtimes vorinstalliert.
renv Cache
Eine sehr nützliche Funktion von renv ist sein globaler Paketcache, der von allen renv-Projekten auf dem Cluster gemeinsam genutzt wird. Er beschleunigt die Installationszeiten und spart Speicherplatz. Der renv-Cache speichert keine Pakete, die über die devtools-API oder install.packages() mit zusätzlichen Argumenten außer pkgs heruntergeladen wurden.