renv na Azure Databricks

Renv je balíček R, který umožňuje uživatelům spravovat závislosti R specifické pro poznámkový blok.

Pomocí renvmůžete vytvořit a spravovat prostředí knihovny jazyka R pro váš projekt, uložit stav těchto knihoven do lockfilea později podle potřeby obnovit knihovny. Tyto nástroje mohou pomoci vytvořit projekty izolované, přenosné a reprodukovatelné.

Nainstalovat renv

Můžete nainstalovat renv jako knihovnu v rozsahu clusteru nebo jako knihovnu v rozsahu poznámkového bloku. Pokud chcete nainstalovat renv jako knihovnu omezenou na poznámkový blok, použijte:

require(devtools)

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

Databricks doporučuje jako úložiště použít snímek CRAN k opravě verze balíčku.

Inicializace renv relace s předinstalovanými knihovnami jazyka R

Prvním krokem při použití renv je inicializace relace pomocí renv::init(). Nastavte libPaths, aby se výchozí umístění stahování změnilo na cestu knihovny v rámci poznámkového bloku R .

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

Slouží renv k instalaci dalších balíčků.

K instalaci a odebrání balíčků R teď můžete použít renvrozhraní API. Pokud chcete například nainstalovat nejnovější verzi digest, spusťte v buňce poznámkového bloku následující příkaz.

renv::install("digest")

Pokud chcete nainstalovat starou verzi digest, spusťte v buňce poznámkového bloku následující příkaz.

renv::install("digest@0.6.18")

Pokud chcete nainstalovat digest z GitHubu, spusťte v buňce poznámkového bloku následující příkaz.

renv::install("eddelbuettel/digest")

Pokud chcete nainstalovat balíček z Bioconductoru, spusťte v buňce poznámkového bloku následující příkaz.

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

Všimněte si, že renv::install rozhraní API používá renv mezipaměť.

Použití renv k uložení prostředí poznámkového bloku R do DBFS

Před uložením prostředí spusťte následující příkaz.

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

Tím se nastaví renv snímek všech balíčků nainstalovaných v libPaths poznámkovém bloku, nikoliv pouze těch, které jsou aktuálně používány v poznámkovém bloku. Další informace najdete v dokumentaci k verzi Renv.

Teď můžete v buňce poznámkového bloku spustit následující příkaz, abyste uložili aktuální stav prostředí.

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

Tím se lockfile aktualizuje zachytáváním všech balíčků nainstalovaných na libPaths. Také přesune váš lockfile z místního systému souborů do DBFS, kde se zachová i v případě, že cluster ukončí nebo restartuje.

Přeinstalujte prostředí renv z lockfile DBFS

Nejprve se ujistěte, že váš nový cluster používá identickou verzi Databricks Runtime, jako byla použita při prvním vytvoření prostředí renv. Tím se zajistí, že jsou předinstalované balíčky R stejné. Seznam těchto položek najdete v poznámkách k verzi každého modulu runtime. Po instalaci renvspusťte v buňce poznámkového bloku následující příkaz.

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"))

Zkopíruje vaše lockfile z DBFS do místního systému souborů a poté obnoví všechny balíčky specifikované v lockfile.

Poznámka:

Aby nedošlo k chybám způsobeným chybějícím úložištěm, vylučte balíčky Rserve a SparkR z obnovení balíčku. Oba tyto balíčky jsou předinstalované ve všech prostředích runtime.

renv Mezipaměť

Velmi užitečná funkce renv je globální mezipaměť balíčků, která se sdílí napříč všemi renv projekty v clusteru. Zrychluje dobu instalace a šetří místo na disku. Mezipaměť renv neukládá balíčky stažené prostřednictvím devtools rozhraní API ani install.packages() s jinými argumenty než pkgs.