Delen via


R-bibliotheekbeheer

Bibliotheken bieden herbruikbare code die u mogelijk wilt opnemen in uw programma's of projecten voor Microsoft Fabric Spark.

Microsoft Fabric ondersteunt een R-runtime met veel populaire opensource R-pakketten, waaronder TidyVerse, vooraf geïnstalleerd. Wanneer een Spark-exemplaar wordt gestart, worden deze bibliotheken automatisch opgenomen en beschikbaar om onmiddellijk te worden gebruikt in notebooks of Spark-taakdefinities.

Mogelijk moet u uw R-bibliotheken om verschillende redenen bijwerken. Een van uw kernafhankelijkheden heeft bijvoorbeeld een nieuwe versie uitgebracht of uw team heeft een aangepast pakket gemaakt dat u nodig hebt in uw Spark-clusters.

Er zijn twee typen bibliotheken die u mogelijk wilt opnemen op basis van uw scenario:

  • Bibliotheken voor feeds verwijzen naar de bibliotheken die zich in openbare bronnen of opslagplaatsen bevinden, zoals CRAN of GitHub.

  • Aangepaste bibliotheken zijn de code die door u of uw organisatie is gebouwd; .tar.gz-bestanden kunnen worden beheerd via portals voor bibliotheekbeheer.

Er zijn twee niveaus van pakketten geïnstalleerd op Microsoft Fabric:

  • Omgeving: Beheer bibliotheken in een omgeving om dezelfde set bibliotheken opnieuw te gebruiken in meerdere notitieblokken of taken.

  • Sessie: een installatie op sessieniveau maakt een omgeving voor een specifieke notebooksessie. Wijzigingen aan bibliotheken op het niveau van een sessie worden niet bewaard tussen sessies.

Samenvatting van het huidige beschikbare R-bibliotheekbeheergedrag:

Bibliotheektype Omgevingsinstallatie Installatie op sessieniveau
R-feed (CRAN) Niet ondersteund Ondersteund
R Aangepast Ondersteund Ondersteund

Voorwaarden

R-bibliotheken op sessieniveau

Wanneer u interactieve gegevensanalyse of machine learning uitvoert, kunt u nieuwere pakketten proberen of hebt u mogelijk pakketten nodig die momenteel niet beschikbaar zijn in uw werkruimte. In plaats van de werkruimte-instellingen bij te werken, kunt u sessiebereikpakketten gebruiken om sessieafhankelijkheden toe te voegen, te beheren en bij te werken.

  • Wanneer u bibliotheken met sessiebereik installeert, heeft alleen het huidige notitieblok toegang tot de opgegeven bibliotheken.
  • Deze bibliotheken hebben geen invloed op andere sessies of taken met dezelfde Spark-pool.
  • Deze bibliotheken worden geïnstalleerd bovenop de basisruntime- en poolniveau-bibliotheken.
  • Notebookbibliotheken hebben de hoogste prioriteit.
  • R-bibliotheken met sessiebereik blijven niet behouden over sessies heen. Deze bibliotheken worden aan het begin van elke sessie geïnstalleerd wanneer de bijbehorende installatieopdrachten worden uitgevoerd.
  • R-bibliotheken met sessiebereik worden automatisch geïnstalleerd op zowel het stuurprogramma als de werkknooppunten.

Notitie

De opdrachten voor het beheren van R-bibliotheken worden uitgeschakeld bij het uitvoeren van pipeline-opdrachten. Als u een pakket in een pijplijn wilt installeren, moet u de mogelijkheden voor bibliotheekbeheer op werkruimteniveau gebruiken.

R-pakketten installeren vanuit CRAN

U kunt eenvoudig een R-bibliotheek installeren vanuit CRAN-.

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

U kunt CRAN-momentopnamen ook gebruiken als de opslagplaats om ervoor te zorgen dat u elke keer dezelfde pakketversie downloadt.

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

R-pakketten installeren met devtools

De devtools-bibliotheek vereenvoudigt de ontwikkeling van pakketten om algemene taken te versnellen. Deze bibliotheek wordt geïnstalleerd in de standaardRuntime van Microsoft Fabric.

U kunt devtools gebruiken om een specifieke versie van een bibliotheek op te geven die u wilt installeren. Deze bibliotheken worden op alle knooppunten in het cluster geïnstalleerd.

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

Op dezelfde manier kunt u rechtstreeks vanuit GitHub een bibliotheek installeren.

# Install a GitHub library. 

install_github("jtilly/matchingR")

Momenteel worden de volgende devtools functies ondersteund in Microsoft Fabric:

Bevelen Beschrijving
install_github() Hiermee wordt een R-pakket vanuit GitHub geïnstalleerd
install_gitlab() Een R-pakket installeren vanuit GitLab
install_bitbucket() Hiermee wordt een R-pakket van BitBucket geïnstalleerd
install_url() Hiermee wordt een R-pakket van een willekeurige URL geïnstalleerd
install_git() Installaties vanuit een willekeurige Git-opslagplaats
install_local() Wordt geïnstalleerd vanuit een lokaal bestand op schijf
install_version() Installaties van een specifieke versie op CRAN

Aangepaste R-bibliotheken installeren

Als u een aangepaste bibliotheek op sessieniveau wilt gebruiken, moet u deze eerst uploaden naar een gekoppeld Lakehouse.

  1. Open het notitieblok waarin u de aangepaste bibliotheek wilt gebruiken.

  2. Selecteer aan de linkerkant toevoegen om een bestaand lakehouse toe te voegen of een lakehouse te maken.

    schermopname van het toevoegen van een lakehouse aan uw notitieblok.

  3. Klik met de rechtermuisknop of selecteer de '...' naast Bestanden om uw .tar.gz-bestand te uploaden.

    Schermopname van het uploaden van uw bestand naar de map Lakehouse Files.

  4. Nadat u het hebt geüpload, gaat u terug naar uw notitieblok. Gebruik de volgende opdracht om de aangepaste bibliotheek te installeren voor uw sessie:

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

Geïnstalleerde bibliotheken weergeven

Voer een query uit voor alle bibliotheken die in uw sessie zijn geïnstalleerd met behulp van de opdracht library.

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

Gebruik de functie packageVersion om de versie van de bibliotheek te controleren:

# check the package version
packageVersion("caesar")

Een R-pakket verwijderen uit een sessie

U kunt de functie detach gebruiken om een bibliotheek uit de naamruimte te verwijderen. Deze bibliotheken blijven op schijf totdat ze opnieuw worden geladen.

# detach a library

detach("package: caesar")

Als u een pakket met sessiebereik uit een notebook wilt verwijderen, gebruikt u de opdracht remove.packages(). Deze bibliotheekwijziging heeft geen invloed op andere sessies in hetzelfde cluster. Gebruikers kunnen de ingebouwde bibliotheken van de standaard-runtime van Microsoft Fabric niet verwijderen.

Notitie

U kunt kernpakketten zoals SparkR, SparklyR of R niet verwijderen.

remove.packages("caesar")

R-bibliotheken met sessiebereik en SparkR

Er zijn notebookbibliotheken beschikbaar voor SparkR-werkrollen.

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)

R-bibliotheken met sessie-georiënteerd bereik en sparklyr

Met spark_apply() in sparklyr kunt u R-pakketten in Spark gebruiken. Standaard wordt in sparklyr::spark_apply()het argument pakketten ingesteld op FALSE. Hiermee kopieert u bibliotheken in de huidige libPaths naar de werkers, zodat u ze op werkers kunt importeren en gebruiken. U kunt bijvoorbeeld het volgende uitvoeren om een met caesar versleuteld bericht te genereren met 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)

Meer informatie over de R-functionaliteiten: