Administrere Apache Spark-biblioteker i Microsoft Fabric

Et bibliotek er en samling forhåndsskrevne koder som utviklere kan importere for å gi funksjonalitet. Ved hjelp av biblioteker kan du spare tid og krefter ved å ikke måtte skrive kode fra grunnen av for å utføre vanlige oppgaver. Importer i stedet biblioteket og bruk funksjonene og klassene for å oppnå ønsket funksjonalitet. 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.

Bibliotekbehandling i arbeidsområdeinnstilling

Viktig

Bibliotekbehandling på innstillingen for arbeidsområdet støttes ikke lenger. Hvis du vil overføre arbeidsområdebiblioteker og Spark-egenskaper til et standardmiljø, kan du se Overføre arbeidsområdets biblioteker og Spark-egenskaper.

Sammendrag av anbefalte fremgangsmåter for bibliotekbehandling

Følgende scenarier beskriver anbefalte fremgangsmåter.

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

Notatblokkene og spark-jobbdefinisjonene i arbeidsområdet er knyttet til innstillingene for arbeidsområdet. De starter økter med bibliotekene som er installert i arbeidsområdets standardmiljø.

Scenario 2: Behold bibliotekspesifikasjoner for ett eller flere kodeelementer

Hvis du vil beholde bibliotekspesifikasjonene, installerer du bibliotekene i et miljø og knytter det til kodeelementene.

En fordel med denne fremgangsmåten er at det sparer innsats for å kjøre koden som krever vanlige biblioteker hele tiden. Når det er installert i miljøet, er bibliotekene effektive i alle Spark-økter hvis miljøet er knyttet til.

En annen fordel er at tilnærmingen støtter granularitet for bibliotekkonfigurasjon lavere enn arbeidsområdenivået. Ett miljø kan knyttes til flere kodeartefakter. Hvis du har et delsett av notatblokker eller Spark-jobbdefinisjoner i ett arbeidsområde som krever de samme bibliotekene, kan du legge dem ved i samme miljø. En administrator, medlem eller bidragsyter av arbeidsområdet kan opprette, redigere og legge ved miljøet.

Scenario 3: Innebygd installasjon i interaktiv kjøring

Hvis du er interessert i engangsbruk i en interaktiv notatblokk i et bibliotek som ikke er installert, er innebygd installasjon det mest praktiske alternativet. Innebygde kommandoer i Fabric lar deg ha biblioteket effektivt i gjeldende spark-økt for notatblokken. Biblioteket beholdes ikke på tvers av ulike økter.

Brukere som har tillatelse til å kjøre notatblokken, kan installere andre biblioteker i Spark-økten.

Sammendrag av støttede bibliotektyper

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

Viktig

Det finnes for øyeblikket begrensninger på .jar biblioteket.

  • For Scala-brukere kan .jar-filen installeres i et miljø, men den er ikke effektiv for Spark/Scala-øktene. Installasjonen overstyrer det innebygde biblioteket med et annet bibliotek. Den nye .jar fungerer i øktene.
  • For Python-brukere støttes ikke alle .jar filer i et miljø. De kan installeres i et miljø, men er ikke effektive i PySpark-økter.
  • Du kan installere .jar filer på notatblokkøktnivå i stedet.

Innebygd installasjon

Innebygde kommandoer støtter Python-biblioteker og R-biblioteker.

Python-innebygd installasjon

Python-tolken starter på nytt for å bruke endringen av biblioteker. Alle variabler som er definert før du kjører kommandocellen, går tapt. Vi anbefaler på det sterkeste at du legger til alle kommandoene for å legge til, slette eller oppdatere Python-pakker i begynnelsen av notatblokken.

Vi anbefaler %pip i stedet !pipfor . !pip er en innebygd IPython-grensesnittkommando, som har følgende begrensninger:

  • !pip installerer bare en pakke på drivernoden, ikke eksekutornoder.
  • Pakker som installeres gjennom !pip , påvirker ikke konflikter med innebygde pakker eller om pakker allerede er importert i en notatblokk.

Håndterer imidlertid %pip disse scenariene. Biblioteker som er installert gjennom %pip , er tilgjengelige på både driver- og eksekutornoder og er fremdeles effektive 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.

Det kan være lurt å bruke %conda install for mer pålitelighet og stabilitet. Du kan bruke %pip install hvis du er sikker på at biblioteket du vil installere, ikke er i konflikt 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

I dette eksemplet kan du se hvordan du bruker innebygde kommandoer til å behandle biblioteker. La oss si at du vil bruke altair, et kraftig visualiseringsbibliotek for Python, for en engangsdatautforskning. La oss si at biblioteket ikke er installert i arbeidsområdet. 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 Fil-mappen i lakehouse som er knyttet til notatblokken. Gå til lakehouse, velg ... -ikonet i Fil-mappen , og last opp det egendefinerte biblioteket.

Når du har lastet opp, kan du bruke følgende kommando til å installere det egendefinerte biblioteket i notatblokkøkten.

# install the .whl through pip command
%pip install /lakehouse/default/Files/wheel_file_name.whl             

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

De .jar filene støttes på notatblokkø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",
    }
}        

Kodecellen bruker Lakehouses lagringsplass som eksempel. I notatblokkutforskeren kan du kopiere den fullstendige fil-ABFS-banen og erstatte i koden. Skjermbilde av hent ABFS-banen.