Del via


Administrere Apache Spark-biblioteker i Microsoft Fabric

Et bibliotek er en gjenbrukbar kodepakke — som en Python-pakke fra PyPI, en R-pakke fra CRAN eller en Java JAR — som du kan importere til notatbøkene dine og Spark-jobbdefinisjoner for å legge til funksjonalitet uten å måtte skrive den fra bunnen av. Microsoft Fabric tilbyr flere mekanismer for å hjelpe deg med å administrere og bruke biblioteker.

  • Innebygde biblioteker: Hvert Fabric Spark runtime gir et rikt sett med populære forhåndsinstallerte biblioteker. Du finner den fullstendige innebygde biblioteklisten i Fabric Spark Runtime.
  • Offentlige biblioteker: Folkebiblioteker er hentet fra repositorier som PyPI og Conda, som for øyeblikket støttes.
  • Egendefinerte biblioteker: Egendefinerte biblioteker refererer til kode som du eller organisasjonen bygger. Stoffet støtter dem i formatene .whl, .jar og .tar.gz . Stoffet støtter .tar.gz bare for R-språket. Bruk .whl-formatet for python-egendefinerte biblioteker.

Sammendrag av anbefalte fremgangsmåter for bibliotekbehandling

Følgende scenarier beskriver anbefalte fremgangsmåter når du bruker biblioteker i Microsoft Fabric.

Miljøpubliseringsmoduser (Rask vs Full)

Når du installerer biblioteker i et Fabric-miljø, velger du en publiseringsmodus som styrer hvordan bibliotekene leveres til Spark-øktene dine.

  • Hurtigmodus publiseres på omtrent 5 sekunder. Biblioteker installeres når en notatbokøkt starter, i stedet for under publisering. Hvis en Quick mode-pakke har samme navn som Full mode-pakken, overstyrer Quick mode-versjonen Full mode-versjonen kun for den økten. Bruk Hurtigmodus for rask, iterativ utvikling av notatbøker og tidlig eksperimentering.
  • Full modus skaper et stabilt, reproduserbart biblioteksøyeblikksbilde. Publisering tar vanligvis 3 til 6 minutter fordi systemet løser avhengigheter og validerer kompatibilitet. Sesjonsoppstart legger til 1 til 3 minutter for avhengighetsutrulling, avhengig av avhengighetsstørrelse. Bruk Full mode for pipelines, planlagte kjøringer og delte arbeidsbelastninger som krever konsistente, reproduserbare miljøer.

Full modus med en tilpasset live pool

For å kombinere stabiliteten til Full mode med raske øktstarter, konfigurere en tilpasset live pool som kobles til et Full Mode-miljø. Live poolen hydrerer klynger med Full mode-bibliotekets snapshot på forhånd, noe som muliggjør omtrent 5 sekunders starttid på øktene samtidig som det reproduserbare snapshotet bevares.

For detaljer om hver modus, se Administrer biblioteker i Fabric-miljøer.

Scenario 1: Administrator angir standardbiblioteker for arbeidsområdet

Hvis du vil angi standardbiblioteker, må du være administrator for arbeidsområdet. Som administrator kan du utføre disse oppgavene:

  1. Opprett et nytt miljø
  2. Installere de nødvendige bibliotekene i miljøet
  3. Legg ved dette miljøet som standard for arbeidsområdet

Når notatblokker og Spark-jobbdefinisjoner er knyttet til innstillingene for arbeidsområdet, starter de økter med bibliotekene som er installert i arbeidsområdets standardmiljø.

Scenario 2: Behold bibliotekspesifikasjoner for ett eller flere kodeelementer

Hvis du har felles biblioteker for forskjellige kodeelementer og ikke trenger å oppdatere dem ofte, installer bibliotekene i et miljø og koble dem til kodeelementene.

Publiseringstiden avhenger av hvilken modus du velger. Hurtigmodus publiseres på omtrent 5 sekunder og installerer bibliotekene ved øktstart. Full modus løser avhengigheter og skaper et stabilt øyeblikksbilde; Det tar vanligvis 3 til 6 minutter å publisere, og oppstart av økter legger til 1 til 3 minutter for avhengighetsdistribusjon.

Fordelen med denne tilnærmingen er at vellykket installerte biblioteker garantert er tilgjengelige når en Spark-økt starter med miljøet tilknyttet. Det sparer for arbeidet med å vedlikeholde felles biblioteker for prosjektene dine, og anbefales for pipeline-scenarier på grunn av stabiliteten.

Scenario 3: Innebygd installasjon i interaktiv kjøring

Hvis du skriver kode interaktivt i en notatbok, er inline-installasjon den beste metoden for å legge til PyPI- eller Conda-biblioteker eller validere tilpassede biblioteker for engangsbruk. Inline-kommandoer gjør et bibliotek tilgjengelig kun i den nåværende notatboken Spark-sesjon — de tillater rask installasjon, men det installerte biblioteket varer ikke på tvers av økter.

Fordi %pip install det kan generere forskjellige avhengighetstrær fra kjøring til kjøring, noe som kan føre til bibliotekkonflikter, er inline-kommandoer som standard slått av i pipeline-kjøringer og anbefales ikke for pipelines.

Merk

Biblioteker installert via inline-kommandoer (som %pip install eller %conda install) og biblioteker lagt til fra en notatbok eller miljø-ressursmappe er begrenset til gjeldende økt eller notatbok. De påvirkes ikke av miljøpublisering verken i Hurtigmodus eller Fullmodus.

Sammendrag av støttede bibliotektyper

Bibliotektype Administrasjon av miljøbibliotek Innebygd installasjon
Python Public (PyPI &Conda) Støttes Støttes
Python egendefinert (.whl) Støttes Støttes
Offentlig R (CRAN) Støttes ikke Støttes
R-egendefinert (.tar.gz) Støttes som egendefinert bibliotek Støttes
Krukke Støttes som egendefinert bibliotek Støttes

Innebygd installasjon

Inline-kommandoer lar deg administrere biblioteker innenfor individuelle notatbokøkter.

Python-innebygd installasjon

Systemet starter Python-tolken på nytt for å utføre bibliotekendringer. Alle variabler som er definert før du kjører kommandocellen, går tapt. Legg alle kommandoer for å legge til, slette eller oppdatere Python-pakker i starten av notatboken din.

Inline-kommandoer for administrasjon av Python-biblioteker er deaktivert i notebook-pipeline-kjøringer som standard. For å muliggjøre %pip install en pipeline, legg _inlineInstallationEnabled til som en boolsk parameter satt til True i notatbokens aktivitetsparametere.

Skjermbilde som viser konfigurasjonen for å aktivere pip-installasjon for kjøring av notebook-pipeline.

Merk

Kommandoen %pip install kan gi inkonsistente resultater fra kjøring til kjøring. Installer biblioteker i et miljø og bruk miljøet i en pipeline i stedet. Kommandoen %pip install støttes ikke i High Concurrency-modus. I notebook-referanser støttes ikke inline-kommandoer for å administrere Python-biblioteker. Fjern disse inline-kommandoene fra den refererte notatboken for å sikre korrekt utførelse.

Bruk %pip i stedet for !pip. Kommandoen !pip er en innebygd IPython-skalkommando med følgende begrensninger:

  • !pip installerer en pakke kun på drivernoden, ikke på executor-noder.
  • Pakker installert gjennom !pip tar ikke hensyn til konflikter med innebygde pakker eller pakker som allerede er importert i en notatbok.

%pip håndterer disse scenarioene. Biblioteker installert gjennom %pip er tilgjengelige både på driver- og executor-noder og trer i kraft selv om biblioteket allerede er importert.

Tips

Kommandoen %conda install tar vanligvis lengre tid enn %pip install kommandoen for å installere nye Python-biblioteker. Den kontrollerer de fullstendige avhengighetene og løser konflikter.

Bruk for %conda install mer pålitelighet og stabilitet. Bruk %pip install hvis du er sikker på at biblioteket du vil installere ikke kolliderer med de forhåndsinstallerte bibliotekene i kjøretidsmiljøet.

Hvis du vil ha alle tilgjengelige python-innebygde kommandoer og avklaringer, kan du se %pip-kommandoer og %conda-kommandoer.

Administrer Python-biblioteker gjennom innebygd installasjon

Dette eksempelet viser hvordan man bruker inline-kommandoer for å administrere biblioteker. Anta at du vil bruke Altair, et kraftig visualiseringsbibliotek for Python, for en engangsdatautforskning, og biblioteket ikke er installert i arbeidsområdet ditt. Følgende eksempel bruker conda-kommandoer til å illustrere trinnene.

Du kan bruke innebygde kommandoer til å aktivere altair på notatblokkøkten uten å påvirke andre økter i notatblokken eller andre elementer.

  1. Kjør følgende kommandoer i en notatblokkkodecelle. Den første kommandoen installerer altair-biblioteket . Installer også vega_datasets, som inneholder en semantisk modell du kan bruke til å visualisere.

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

    Utdataene i cellen angir resultatet av installasjonen.

  2. Importer pakken og semantisk modell ved å kjøre følgende kode i en annen notatblokkcelle.

    import altair as alt
    from vega_datasets import data
    
  3. Nå kan du leke deg med altair-biblioteket med øktomfang.

    # 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()
    

Behandle egendefinerte Python-biblioteker gjennom innebygd installasjon

Du kan laste opp de egendefinerte Python-bibliotekene til ressursmappen i notatblokken eller det vedlagte miljøet. Ressursmappen er et innebygd filsystem som tilbys av hver notatbok og hvert miljø. Se notatblokkressurser for mer informasjon. Etter at du har lastet opp et bibliotek, kan du dra og slippe det inn i en kodecelle for automatisk å generere installasjonskommandoen. Eller du kan kjøre følgende kommando:

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

Merk

Egendefinerte biblioteker installert fra Resources-mappen via inline-kommandoer er per økt og per notatbok. De påvirkes ikke av miljøpublisering.

Innebygd R-installasjon

For å administrere R-biblioteker støtter install.packages()Fabric kommandoene , remove.packages()og devtools:: . Hvis du vil ha alle tilgjengelige innebygde R-kommandoer og -avklaringer, kan du se kommandoen install.packages og remove.package.

Administrer R-biblioteker gjennom innebygd installasjon

Følg dette eksemplet for å gå gjennom trinnene for å installere et offentlig R-bibliotek.

Slik installerer du et R-feedbibliotek:

  1. Bytt arbeidsspråket til SparkR (R) på notatblokkbåndet.

  2. Installer cæsarbiblioteket ved å kjøre følgende kommando i en notatblokkcelle.

    install.packages("caesar")
    
  3. Nå kan du leke deg med cæsarbiblioteket med øktomfang med en Spark-jobb.

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

Behandle Jar-biblioteker gjennom innebygd installasjon

Du kan legge til .jar filer i notatbokøkter 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 kodecellen bruker lakehouse-lagring som et eksempel. I notatbokutforskeren kan du kopiere hele ABFS-stien til filen og erstatte den i koden. Skjermbilde av menykommandoene for å få ABFS-banen.