Sdílet prostřednictvím


Správa knihovny R

Knihovny poskytují opakovaně použitelný kód, který můžete chtít zahrnout do programů nebo projektů pro Microsoft Fabric Spark.

Microsoft Fabric podporuje modul runtime R s mnoha oblíbenými opensourcovými balíčky R, včetně předinstalovaných TidyVerse. Při spuštění instance Sparku se tyto knihovny zahrnou automaticky a dají se okamžitě použít v poznámkových blocích nebo definicích úloh Sparku.

Možná budete muset aktualizovat knihovny jazyka R z různých důvodů. Například jedna z vašich základních závislostí vydala novou verzi nebo váš tým vytvořil vlastní balíček, který potřebujete k dispozici v clusterech Spark.

Existují dva typy knihoven, které můžete chtít zahrnout na základě vašeho scénáře:

  • Knihovny zdrojů odkazují na ty, které sídlí ve veřejných zdrojích nebo úložištích, jako je například CRAN nebo GitHub.

  • vlastní knihovny jsou kód vytvořený vámi nebo vaší organizací, .tar.gz je možné spravovat prostřednictvím portálů pro správu knihoven.

V Microsoft Fabric jsou nainstalované dvě úrovně balíčků:

  • prostředí: Spravujte knihovny pomocí prostředí a znovu používejte stejnou sadu knihoven napříč několika poznámkovými bloky nebo úlohami.

  • Relace: Instalace na úrovni relace vytvoří prostředí pro konkrétní relaci poznámkového bloku. Změna knihoven na úrovni relace není mezi relacemi zachována.

Shrnutí aktuálního dostupného chování správy knihovny R:

Typ knihovny Instalace prostředí Instalace na úrovni relace
Kanál R (CRAN) Nepodporováno Podporovaný
Vlastní jazyk R Podporovaný Podporovaný

Požadavky

Knihovny R na úrovni relace

Při interaktivní analýze dat nebo strojovém učení můžete vyzkoušet novější balíčky nebo možná budete potřebovat balíčky, které jsou momentálně ve vašem pracovním prostoru nedostupné. Místo aktualizace nastavení pracovního prostoru můžete použít balíčky s vymezeným relacím k přidávání, správě a aktualizaci závislostí relací.

  • Při instalaci knihoven s vymezeným oborem relace má přístup k zadaným knihovnám pouze aktuální poznámkový blok.
  • Tyto knihovny nemají vliv na jiné relace nebo úlohy používající stejný fond Sparku.
  • Tyto knihovny se instalují nad základní knihovny runtime a na úrovni fondu.
  • Knihovny poznámkových bloků mají nejvyšší prioritu.
  • Knihovny jazyka R s oborem relace se neuchovávají napříč relacemi. Tyto knihovny se instalují na začátku každé relace při spuštění souvisejících instalačních příkazů.
  • Knihovny R omezené na relaci jsou automaticky instalovány na oba uzly ovladače i pracovní uzly.

Poznámka

Příkazy pro správu knihoven R jsou při spouštění úloh v rámci pipeline zakázané. Pokud chcete balíček nainstalovat v rámci kanálu, musíte použít možnosti správy knihoven na úrovni pracovního prostoru.

Instalace balíčků R z CRAN

Knihovnu jazyka R můžete snadno nainstalovat z CRAN.

# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

Snímky CRAN můžete použít také jako úložiště, abyste měli jistotu, že pokaždé stáhnete stejnou verzi balíčku.

# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Instalace balíčků R pomocí devtools

Knihovna devtools zjednodušuje vývoj balíčků, aby urychlil běžné úlohy. Tato knihovna se instaluje ve výchozím modulu runtime Microsoft Fabric.

Pomocí devtools můžete zadat konkrétní verzi knihovny, kterou chcete nainstalovat. Tyto knihovny se instalují napříč všemi uzly v clusteru.

# Install a specific version. 
install_version("caesar", version = "1.0.0")

Podobně můžete knihovnu nainstalovat přímo z GitHubu.

# Install a GitHub library. 

install_github("jtilly/matchingR")

V současné době se v Microsoft Fabric podporují následující devtools funkce:

Příkaz Popis
install_github() Nainstaluje balíček R z GitHubu.
install_gitlab() Nainstaluje balíček R z GitLabu.
install_bitbucket() Nainstaluje balíček R z BitBucketu.
install_url() Nainstaluje balíček R z libovolné adresy URL.
install_git() Nainstaluje se z libovolného úložiště Git.
install_local() Nainstaluje se z místního souboru na disk.
install_version() Instaluje se z konkrétní verze na CRANu

Instalace vlastních knihoven jazyka R

Pokud chcete použít vlastní knihovnu na úrovni relace, musíte ji nejprve nahrát do připojeného Lakehouse.

  1. Otevřete poznámkový blok, ve kterém chcete použít vlastní knihovnu.

  2. Na levé straně vyberte Přidat a přidejte existující jezero nebo vytvořte jezero.

    snímek obrazovky znázorňující, jak přidat lakehouse do poznámkového bloku

  3. Klikněte pravým tlačítkem nebo vyberte "..." vedle Soubory, abyste nahráli svůj soubor .tar.gz.

    snímek obrazovky znázorňuje, jak nahrát soubor do složky Lakehouse Files.

  4. Po nahrání se vraťte do poznámkového bloku. Pomocí následujícího příkazu nainstalujte vlastní knihovnu do relace:

    install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
    

Zobrazení nainstalovaných knihoven

Pomocí příkazu library zadejte dotaz na všechny knihovny nainstalované v rámci relace.

# query all the libraries installed in current session
library()

Pomocí funkce packageVersion zkontrolujte verzi knihovny:

# check the package version
packageVersion("caesar")

Odstranit balíček R z relace

Pomocí funkce detach můžete odebrat knihovnu z oboru názvů. Tyto knihovny zůstanou na disku, dokud nebudou znovu načteny.

# detach a library

detach("package: caesar")

Pokud chcete z poznámkového bloku odebrat balíček s oborem relace, použijte příkaz remove.packages(). Tato změna knihovny nemá žádný vliv na jiné relace ve stejném clusteru. Uživatelé nemůžou odinstalovat ani odebrat integrované knihovny výchozího modulu runtime Microsoft Fabric.

Poznámka

Základní balíčky, jako je SparkR, SparklyR nebo R, nemůžete odebrat.

remove.packages("caesar")

Knihovny R pro relaci a SparkR

Knihovny omezené na notebook jsou k dispozici pro pracovníky SparkR.

install.packages("stringr")
library(SparkR)

str_length_function <- function(x) {
  library(stringr)
  str_length(x)
}

docs <- c("Wow, I really like the new light sabers!",
               "That book was excellent.",
               "R is a fantastic language.",
               "The service in this restaurant was miserable.",
               "This is neither positive or negative.")

spark.lapply(docs, str_length_function)

Knihovny R s vymezeným oborem relace a sparklyr

Ve sparklyr s spark_apply() můžete ve Sparku používat jakékoliv balíčky R. Ve výchozím nastavení se v sparklyr::spark_apply()nastaví argument packages na FALSE. Tím se zkopírují knihovny v aktuálních knihovnách libPath do pracovních procesů, takže je můžete importovat a používat u pracovních procesů. Můžete například spustit následující příkaz, který vygeneruje zprávu zašifrovanou pomocí sparklyr::spark_apply():

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)

apply_cases <- function(x) {
  library(caesar)
  caesar("hello world")
}
sdf_len(sc, 5) %>%
  spark_apply(apply_cases, packages=FALSE)

Další informace o funkcích jazyka R: