Del via


Administrer Apache Spark-biblioteker i Microsoft Fabric

Et bibliotek er en genanvendelig kodepakke — såsom en Python-pakke fra PyPI, en R-pakke fra CRAN eller en Java JAR — som du kan importere til dine notebooks og Spark-jobdefinitioner for at tilføje funktionalitet uden at skulle skrive det fra bunden. Microsoft Fabric indeholder flere mekanismer, der kan hjælpe dig med at administrere og bruge biblioteker.

  • Indbyggede biblioteker: Hver Fabric Spark-kørsel giver et omfattende sæt populære forudinstallerede biblioteker. Du kan finde den komplette indbyggede biblioteksliste i Fabric Spark Runtime.
  • Offentlige biblioteker: Offentlige biblioteker hentes fra lagre som PyPI og Conda, som understøttes i øjeblikket.
  • Brugerdefinerede biblioteker: Brugerdefinerede biblioteker refererer til kode, som du eller din organisation bygger. Fabric understøtter dem i formaterne .whl, .jar og .tar.gz . Fabric understøtter kun .tar.gz for R-sproget. I forbindelse med brugerdefinerede Python-biblioteker skal du bruge .whl-formatet .

Oversigt over bedste praksis for administration af biblioteker

I følgende scenarier beskrives de bedste fremgangsmåder, når du bruger biblioteker i Microsoft Fabric.

Scenarie 1: Administratorer angiver standardbiblioteker for arbejdsområdet

Hvis du vil angive standardbiblioteker, skal du være administrator af arbejdsområdet. Som administrator kan du udføre disse opgaver:

  1. Opret et nyt miljø
  2. Installér de påkrævede biblioteker i miljøet
  3. Vedhæft dette miljø som standard for arbejdsområdet

Når dine notesbøger og Spark-jobdefinitioner er knyttet til indstillingerne for arbejdsområdet, starter de sessioner med de biblioteker, der er installeret i arbejdsområdets standardmiljø.

Scenarie 2: Fasthold biblioteksspecifikationer for et eller flere kodeelementer

Hvis du har fælles biblioteker for forskellige kodeelementer og ikke behøver at opdatere dem ofte, så installer bibliotekerne i et miljø og tilknyt dem til kodeelementerne.

Udgivelsen tager 5 til 15 minutter, afhængigt af bibliotekernes kompleksitet. Under denne proces løser systemet potentielle konflikter og downloader nødvendige afhængigheder.

Fordelen ved denne tilgang er, at velinstallerede biblioteker er garanteret tilgængelige, når en Spark-session starter med miljøet tilknyttet. Det sparer besværet med at vedligeholde fælles biblioteker til dine projekter og anbefales til pipeline-scenarier på grund af dets stabilitet.

Scenarie 3: Indbygget installation i interaktiv kørsel

Hvis du skriver kode interaktivt i en notesbog, er inline-installation den bedste tilgang til at tilføje PyPI- eller Conda-biblioteker eller validere brugerdefinerede biblioteker til engangsbrug. Inline-kommandoer gør et bibliotek tilgængeligt i den aktuelle notebook Spark-session kun — de tillader hurtig installation, men det installerede bibliotek kan ikke blive brugt på tværs af sessioner.

Fordi %pip install kan generere forskellige afhængighedstræer fra kørsel til kørsel, hvilket kan føre til bibliotekskonflikter, er inline-kommandoer som standard slået fra i pipeline-kørsler og anbefales ikke til pipelines.

Oversigt over understøttede bibliotekstyper

Bibliotekstype Administration af miljøbiblioteker Indbygget installation
Python Public (PyPI og Conda) Understøttet Understøttet
Brugerdefineret Python (.whl) Understøttet Understøttet
R Offentlig (CRAN) Ikke understøttet Understøttet
Brugerdefineret R (.tar.gz) Understøttes som brugerdefineret bibliotek Understøttet
Krukke Understøttes som brugerdefineret bibliotek Understøttet

Indbygget installation

Inline-kommandoer lader dig administrere biblioteker inden for individuelle notesbogssessioner.

Indbygget Python-installation

Systemet genstarter Python-fortolkeren for at anvende biblioteksændringer. Alle variabler, der er defineret, før du kører kommandocellen, går tabt. Læg alle kommandoer til at tilføje, slette eller opdatere Python-pakker i starten af din notesbog.

Inline-kommandoer til håndtering af Python-biblioteker er deaktiveret i notebook-pipeline-kørsler som standard. For at muliggøre %pip install en pipeline, tilføj _inlineInstallationEnabled som en boolesk parameter sat til True i notebookens aktivitetsparametre.

Skærmbillede, der viser konfigurationen af at aktivere pip-installation for notebook pipeline-kørsel.

Bemærk

Kommandoen %pip install kan give inkonsistente resultater fra kørsel til kørsel. Installer biblioteker i et miljø og brug miljøet i en pipeline i stedet. Kommandoen %pip install understøttes ikke i High Concurrency-tilstand. I notebook-referencekørsler understøttes inline-kommandoer til håndtering af Python-biblioteker ikke. Fjern disse inline-kommandoer fra den refererede notesbog for at sikre korrekt udførelse.

Brug %pip i stedet for !pip. Kommandoen !pip er en indbygget IPython-shell-kommando med følgende begrænsninger:

  • !pip installerer en pakke kun på drivernoden, ikke på executor-noder.
  • Pakker, der er installeret igennem !pip , tager ikke højde for konflikter med indbyggede pakker eller pakker, der allerede er importeret i en notesbog.

%pip håndterer disse scenarier. Biblioteker, der installeres gennem, %pip er tilgængelige på både driver- og executor-noder og træder i kraft, selvom biblioteket allerede er importeret.

Tips

Kommandoen %conda install tager normalt længere tid end kommandoen %pip install til at installere nye Python-biblioteker. Den kontrollerer de fulde afhængigheder og løser konflikter.

Brug for %conda install mere pålidelighed og stabilitet. %pip install Brug det, hvis du er sikker på, at det bibliotek, du vil installere, ikke konflikter med de forudinstallerede biblioteker i runtime-miljøet.

Du kan se alle tilgængelige indbyggede Python-kommandoer og præciseringer under %pip-kommandoer og %conda-kommandoer.

Administrer offentlige Python-biblioteker via indbygget installation

Dette eksempel viser, hvordan man bruger inline-kommandoer til at administrere biblioteker. Antag, at du vil bruge Altair, et kraftfuldt visualiseringsbibliotek til Python, til en engangsdataudforskning, og biblioteket ikke er installeret i dit arbejdsområde. I følgende eksempel bruges conda-kommandoer til at illustrere trinnene.

Du kan bruge indbyggede kommandoer til at aktivere altair i notesbogsessionen, uden at det påvirker andre sessioner i notesbogen eller andre elementer.

  1. Kør følgende kommandoer i en notesbogkodecelle. Den første kommando installerer altair-biblioteket . Du skal også installere vega_datasets, som indeholder en semantisk model, som du kan bruge til at visualisere.

    %conda install altair          # install latest version through conda command
    %conda install vega_datasets   # install latest version through conda command
    

    Outputtet af cellen angiver resultatet af installationen.

  2. Importér pakken og den semantiske model ved at køre følgende kode i en anden notesbogcelle.

    import altair as alt
    from vega_datasets import data
    
  3. Nu kan du lege med altair-biblioteket, der er beregnet til sessionen.

    # load a simple dataset as a pandas DataFrame
    cars = data.cars()
    alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    ).interactive()
    

Administrer brugerdefinerede Python-biblioteker via indbygget installation

Du kan uploade dine brugerdefinerede Python-biblioteker til ressourcemappen i notesbogen eller det tilknyttede miljø. Ressourcemappen er et indbygget filsystem, som leveres af hver notesbog og hvert miljø. Se Notesbogressourcer for at få flere oplysninger. Efter du har uploadet et bibliotek, kan du trække og slippe det ind i en kodecelle for automatisk at generere installationskommandoen. Eller du kan køre følgende kommando:

# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"             

Indbygget R-installation

Fabric understøtter kommandoerne , install.packages()og remove.packages() for devtools::at administrere R-biblioteker. Du kan se alle tilgængelige indbyggede R-kommandoer og præciseringer under install.packages command and remove.package command.

Administrer offentlige R-biblioteker via indbygget installation

Følg dette eksempel for at gennemgå trinnene til installation af et offentligt R-bibliotek.

Sådan installerer du et R-feedbibliotek:

  1. Skift arbejdssproget til SparkR (R) på båndet i notesbogen.

  2. Installér Cæsar-biblioteket ved at køre følgende kommando i en notesbogcelle.

    install.packages("caesar")
    
  3. Nu kan du lege lidt med det sessionsområdede Cæsarbibliotek med et Spark-job.

    library(SparkR)
    sparkR.session()
    
    hello <- function(x) {
    library(caesar)
    caesar(x)
    }
    spark.lapply(c("hello world", "good morning", "good evening"), hello)
    

Administrer Jar-biblioteker via indbygget installation

Du kan tilføje .jar filer til notesbogssessioner med følgende kommando.

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

Den foregående kodecelle bruger lakehouse-lagring som eksempel. I notebook explorer kan du kopiere hele ABFS-stien for filen og erstatte den i koden. Skærmbillede af menukommandoerne for at hente ABFS-stien.