Administrer Apache Spark-biblioteker i Microsoft Fabric

Et bibliotek er en samling af forudskrevet kode, der kan importeres for at give ekstra funktionalitet. Ved hjælp af biblioteker kan udviklere spare tid og kræfter ved ikke at skulle skrive kode fra bunden for at udføre almindelige opgaver. I stedet kan de importere biblioteket og bruge dets funktioner og klasser til at opnå den ønskede funktionalitet. På Microsoft Fabric findes der flere mekanismer, der kan hjælpe dig med at administrere og bruge bibliotekerne.

  • 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
  • Offentligt bibliotek: Offentlige biblioteker stammer fra lagre som PyPI og Conda, som understøttes i øjeblikket.
  • Brugerdefineret bibliotek: Brugerdefinerede biblioteker refererer til kode, der er oprettet af dig eller din organisation, og understøttes i formaterne .whl, .jar og .tar.gz . Formatet .tar.gz understøttes kun for R-sprog. 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. Du kan følge "Overfør arbejdsområdebiblioteker og Spark-egenskaber til et standardmiljø" for at overføre dem til et miljø og vedhæfte dem som standard i arbejdsområdet.

Oversigt over bedste praksis for administration af biblioteker

Scenarie 1: Administratorer angiver standardbiblioteker for arbejdsområdet

Hvis du vil angive standardbiblioteker, skal du være administrator af arbejdsområdet. Du kan oprette et nyt miljø, installere de påkrævede biblioteker og derefter vedhæfte dette miljø som standard for arbejdsområdet i indstillingen for arbejdsområdet.

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

Scenarie 2: Fast biblioteksspecifikationer for et eller flere kodeelementer

Du kan installere bibliotekerne i et miljø og vedhæfte dem til kodeelementerne , hvis du vil bevare biblioteksspecifikationerne.

En fordel ved at gøre det er, at det sparer duplikeret indsats, hvis kørsel af koden kræver fælles biblioteker hele tiden. Når de er installeret i miljøet, er de effektive i alle Spark-sessioner, hvis miljøet er tilknyttet.

En anden fordel er, at bibliotekskonfigurationsgranularitet er lavere end niveauet for arbejdsområdet, der understøttes. É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ø. Administration, medlem og bidragyder i arbejdsområdet kan oprette, redigere og vedhæfte miljøet.

Scenarie 3: Indbygget installation i interaktiv kørsel

Hvis du vil bruge et bibliotek, der ikke er installeret til engangsbrug i en interaktiv notesbogkørsel, er indbygget installation den mest praktiske løsning. Indbyggede kommandoer i Fabric gør det muligt for dig at have biblioteket effektivt i den aktuelle Spark-session for notesbøger, men det fortsætter ikke på tværs af forskellige sessioner.

Brugere, der har tilladelse til at køre notesbogen, kan installere ekstra 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

Vi har i øjeblikket begrænsninger for biblioteket .jar .

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

Indbygget installation

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

Indbygget Python-installation

Vigtigt

Python-fortolkeren genstartes for at anvende ændringen af biblioteker. Alle variabler, der er defineret, før kommandocellen køres, går tabt. Derfor anbefaler vi på det kraftigste, at du placerer alle kommandoerne til tilføjelse, sletning eller opdatering af Python-pakker i starten af din notesbog. %pip anbefales i stedet for !pip. !pip er en indbygget shellkommando i IPython, som har følgende begrænsninger:

  • !pip installerer kun pakken på drivernoden uden eksekveringsnoder.
  • Pakker, der installeres via !pip , påvirker ikke, når der er konflikt med indbyggede pakker, eller når de allerede er importeret i en notesbog.

%pip håndterer dog alle ovennævnte scenarier. Biblioteker, der er installeret via %pip , vil være tilgængelige på både driver- og eksekveringsnoder og vil stadig være effektive, selvom de allerede er importeret.

Tip

  • Kommandoen %conda install tager normalt længere tid end kommandoen %pip install for at installere nye Python-biblioteker, fordi den kontrollerer de fulde afhængigheder og løser konflikter. Det kan være en god idé at bruge %conda-installation for at opnå større pålidelighed og stabilitet. Du kan bruge installationen af %pip , hvis du er sikker på, at det bibliotek, du vil installere, ikke er i konflikt med de forudinstallerede biblioteker i kørselsmiljøet.
  • Alle tilgængelige Python-indbyggede kommandoer og dens præciseringer findes: %pip-kommandoer og %conda-kommandoer

Administrer offentlige Python-biblioteker via indbygget installation

I dette eksempel viser vi dig, 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. Og lad os antage, at biblioteket ikke er installeret i dit arbejdsområde. I følgende eksempel bruger vi conda-kommandoer til at illustrere trinnene.

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

  1. Kør følgende kommandoer i en kodecelle i en notesbog for at installere altair-biblioteket og vega_datasets, som indeholder 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 celleoutputtet angiver resultatet af installationen.

  2. Importér pakken og den semantiske model ved at køre følgende koder 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, kan 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 install.packages(), remove.packages() og devtools:: kommandoer til administration af R-biblioteker.

Tip

Find alle tilgængelige R-kommandoer og -præciseringer i kommandoen install.packages og kommandoen remove.package.

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.

// Using notebook built-in folder as an example
%%configure -f: 
{
    "conf": {
        "spark.jars": "{mssparkutils.nbResPath}/builtin/jar_file_name.jar"
    }
}