renv
w usłudze Azure Databricks
renv to pakiet języka R, który umożliwia użytkownikom zarządzanie zależnościami języka R specyficznymi dla notesu.
Za pomocą programu renv
można utworzyć środowisko biblioteki języka R dla projektu i zarządzać nim, zapisać stan tych bibliotek w lockfile
bibliotece , a później przywrócić je zgodnie z potrzebami. Razem te narzędzia mogą pomóc w bezpieczniejszym izolowanym, przenośnym i powtarzalnym projektach.
Podstawowy renv
przepływ pracy
W tej sekcji:
-
Instalować
renv
-
Inicjowanie
renv
sesji przy użyciu wstępnie zainstalowanych bibliotek języka R -
Użyj
renv
polecenia , aby zainstalować dodatkowe pakiety -
Użyj
renv
polecenia , aby zapisać środowisko notesu języka R w systemie plików DBFS -
renv
Ponowne instalowanie środowiska zlockfile
systemu plików DBFS
Instalować renv
Możesz zainstalować renv
jako bibliotekę o zakresie klastra lub jako bibliotekę o zakresie notesu. Aby zainstalować renv
jako bibliotekę o zakresie notesu, użyj:
require(devtools)
install_version(
package = "renv",
repos = "http://cran.us.r-project.org"
)
Usługa Databricks zaleca używanie migawki CRAN jako repozytorium w celu naprawienia wersji pakietu.
Inicjowanie renv
sesji przy użyciu wstępnie zainstalowanych bibliotek języka R
Pierwszym krokiem podczas używania renv
jest zainicjowanie sesji przy użyciu polecenia renv::init()
. Ustaw libPaths
wartość , aby zmienić domyślną lokalizację pobierania na ścieżkę biblioteki o zakresie notesu języka R.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths())
Użyj renv
polecenia , aby zainstalować dodatkowe pakiety
Teraz możesz użyć renv
interfejsu API do zainstalowania i usunięcia pakietów języka R. Aby na przykład zainstalować najnowszą wersję programu digest
, uruchom następujące polecenie w komórce notesu.
renv::install("digest")
Aby zainstalować starą wersję programu digest
, uruchom następujące polecenie wewnątrz komórki notesu.
renv::install("digest@0.6.18")
Aby zainstalować aplikację digest
z usługi GitHub, uruchom następujące polecenie wewnątrz komórki notesu.
renv::install("eddelbuettel/digest")
Aby zainstalować pakiet z narzędzia Bioconductor, uruchom następujące polecenie wewnątrz komórki notesu.
# (note: requires the BiocManager package)
renv::install("bioc::Biobase")
Należy pamiętać, że interfejs renv::install
API używa pamięci podręcznej renv.
Użyj renv
polecenia , aby zapisać środowisko notesu języka R w systemie plików DBFS
Uruchom następujące polecenie raz przed zapisaniem środowiska.
renv::settings$snapshot.type("all")
Spowoduje to skonfigurowanie renv
migawki wszystkich pakietów zainstalowanych w libPaths
programie , a nie tylko tych, które są obecnie używane w notesie. Aby uzyskać więcej informacji, zobacz dokumentację renv.
Teraz możesz uruchomić następujące polecenie wewnątrz komórki notesu, aby zapisać bieżący stan środowiska.
renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)
Spowoduje to zaktualizowanie lockfile
programu przez przechwycenie wszystkich pakietów zainstalowanych w programie libPaths
. Przenosi również plik lockfile
z lokalnego systemu plików do systemu plików DBFS, gdzie będzie się powtarzać nawet wtedy, gdy klaster zakończy działanie lub uruchomi ponownie.
renv
Ponowne instalowanie środowiska z lockfile
systemu plików DBFS
Najpierw upewnij się, że nowy klaster ma identyczną wersję środowiska Databricks Runtime jako pierwszą utworzoną renv
w środowisku. Gwarantuje to, że wstępnie zainstalowane pakiety języka R są identyczne. Listę tych elementów można znaleźć w informacjach o wersji każdego środowiska uruchomieniowego. Po zainstalowaniu ponownego uruchomienia uruchom następujące polecenie wewnątrz komórki notesu.
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"))
Spowoduje to skopiowanie pliku lockfile
z systemu plików DBFS do lokalnego systemu plików, a następnie przywrócenie wszystkich pakietów określonych w pliku lockfile
.
Uwaga
Aby uniknąć błędów brakujących repozytorium, wyklucz Rserve
pakiety i SparkR
z przywracania pakietów. Oba te pakiety są wstępnie zainstalowane we wszystkich środowiskach uruchomieniowych.
renv
Pamięć podręczna
Bardzo przydatną funkcją renv
jest jego globalna pamięć podręczna pakietów, która jest współdzielona we wszystkich renv
projektach w klastrze. Skraca czas instalacji i oszczędza miejsce na dysku. Pamięć podręczna renv
nie buforuje pakietów pobranych za pośrednictwem interfejsu devtools
API ani install.packages()
żadnych dodatkowych argumentów innych niż pkgs
.