Administrer Apache Spark-biblioteker i Microsoft Fabric

Et bibliotek er en samling af foruddefineret kode, som udviklere kan importere for at levere funktionalitet. Ved hjælp af biblioteker kan du spare tid og kræfter ved ikke at skulle skrive kode fra bunden for at udføre almindelige opgaver. Importér i stedet biblioteket, og brug dets funktioner og klasser til at opnå den ønskede funktionalitet. 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 .

Indstilling for biblioteksstyring i arbejdsområde

Vigtigt

Biblioteksstyring i arbejdsområdeindstillingen understøttes ikke længere. Hvis du vil overføre arbejdsområdebiblioteker og Spark-egenskaber til et standardmiljø, skal du se Overfør arbejdsområdebiblioteker og Spark-egenskaber.

Oversigt over bedste praksis for administration af biblioteker

I følgende scenarier beskrives de bedste fremgangsmåder.

Scenarie 1: Administration 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

Definitionerne af notesbøger og Spark-job i arbejdsområdet er knyttet til indstillingerne for arbejdsområdet. De starter sessioner med de biblioteker, der er installeret i arbejdsområdets standardmiljø.

Scenarie 2: Fasthold biblioteksspecifikationer for et eller flere kodeelementer

Hvis du vil bevare biblioteksspecifikationerne, skal du installere bibliotekerne i et miljø og vedhæfte dem til kodeelementerne.

En af fordelene ved denne fremgangsmåde er, at den sparer kræfter på at køre den kode, der kræver almindelige biblioteker hele tiden. Når bibliotekerne er installeret i miljøet, er de effektive i alle Spark-sessioner, hvis miljøet er tilknyttet.

En anden fordel er, at tilgangen understøtter granularitet i konfiguration af biblioteker, der er lavere end niveauet for arbejdsområdet. Ét miljø kan knyttes til flere kodeartefakter. Hvis du har et undersæt af notesbøger eller Spark-jobdefinitioner i ét arbejdsområde, der kræver de samme biblioteker, skal du vedhæfte dem til det samme miljø. En administrator, et medlem eller en bidragyder til arbejdsområdet kan oprette, redigere og vedhæfte miljøet.

Scenarie 3: Indbygget installation i interaktiv kørsel

Hvis du er interesseret i engangsbrug i en interaktiv notesbog af et bibliotek, der ikke er installeret, er indbygget installation den mest praktiske løsning. Indbyggede kommandoer i Fabric giver dig mulighed for at have biblioteket effektivt i den aktuelle Spark-session for notesbøger. Biblioteket bevares ikke på tværs af forskellige sessioner.

Brugere, der har tilladelse til at køre notesbogen, kan installere andre biblioteker i Spark-sessionen.

Oversigt over understøttede bibliotekstyper

Bibliotekstype Administration af miljøbiblioteker Indbygget installation
Python Public (PyPI & 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øttet Understøttet
Krukke Understøttes som brugerdefineret bibliotek Ikke understøttet

Vigtigt

Der er i øjeblikket begrænsninger for biblioteket .jar .

  • For Scala-brugere kan .jar-filen installeres korrekt i et miljø, men den er ikke effektiv til dine Spark/Scala-sessioner. Installationen tilsidesætter det indbyggede bibliotek med et andet bibliotek. Den nye .jar fungerer i sessionerne.
  • For Python-brugere understøttes alle .jar filer i øjeblikket ikke i et miljø. De kan installeres korrekt i et miljø, men er ikke effektive i PySpark-sessioner.
  • Du kan i stedet installere de .jar filer på sessionsniveauet for notesbogen.

Indbygget installation

Indbyggede kommandoer understøtter Python-biblioteker og R-biblioteker.

Indbygget Python-installation

Python-fortolkeren genstartes for at anvende ændringen af biblioteker. Alle variabler, der er defineret, før du kører kommandocellen, går tabt. Vi anbefaler på det kraftigste, at du placerer alle kommandoerne til tilføjelse, sletning eller opdatering af Python-pakker i starten af din notesbog.

Vi anbefaler %pip i stedet for !pip. !pip er en indbygget shellkommando i IPython, som har følgende begrænsninger:

  • !pip installerer kun en pakke på drivernoden, ikke eksekveringsnoder.
  • Pakker, der installeres via !pip , påvirker ikke konflikter med indbyggede pakker, eller om pakker allerede er importeret i en notesbog.

Håndterer dog %pip disse scenarier. Biblioteker, der er installeret via %pip , er tilgængelige på både driver- og eksekveringsnoder og er stadig effektive, selvom biblioteket allerede er importeret.

Tip

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.

Det kan være en god idé at bruge %conda install til mere pålidelighed og stabilitet. Du kan bruge %pip install , hvis du er sikker på, at det bibliotek, du vil installere, ikke er i konflikt med de forudinstallerede biblioteker i kørselsmiljø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

I dette eksempel kan du se, hvordan du bruger indbyggede kommandoer til at administrere biblioteker. Lad os antage, at du vil bruge Altair, et effektivt visualiseringsbibliotek til Python, til en engangsudforskning af data. Lad os antage, at 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 mappen Filer i det lakehouse, der er knyttet til notesbogen. Gå til dit lakehouse, vælg ikonet ... i mappen Filer , og upload det brugerdefinerede bibliotek.

Når du har uploadet, skal du bruge følgende kommando til at installere det brugerdefinerede bibliotek i notesbogsessionen.

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

Indbygget R-installation

Fabric understøtter kommandoerne , remove.packages()og devtools:: for install.packages()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

De .jar filer understøttes i notesbogsessioner 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 bruger Lakehouses lager som eksempel. I notesbogoversigten kan du kopiere den fulde fil-ABFS-sti og erstatte den i koden. Skærmbillede af hent ABFS-stien.