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:
- Opprett et nytt miljø
- Installere de nødvendige bibliotekene i miljøet
- 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 |
Krukke | 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.
De innebygde kommandoene for administrasjon av Python-biblioteker er deaktivert i pipeline for notatblokker som kjøres som standard. Hvis du vil aktivere %pip install
for datasamlebånd, legger du til «_inlineInstallationEnabled» som boolsk parameter er lik Sann i aktivitetsparameterne for notatblokken.
Merk
Det %pip install
kan føre til inkonsekvente resultater fra tid til annen. Det anbefales å installere biblioteket i et miljø og bruke det i datasamlebåndet.
Innebygde kommandoer for behandling av Python-biblioteker støttes ikke i notatblokkreferansekjøringer. For å sikre riktig kjøring anbefales det å fjerne disse innebygde kommandoene fra notatblokken det refereres til.
Vi anbefaler %pip
i stedet !pip
for . !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.
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.
Importer pakken og semantisk modell ved å kjøre følgende kode i en annen notatblokkcelle.
import altair as alt from vega_datasets import data
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:
Bytt arbeidsspråket til SparkR (R) på notatblokkbåndet.
Installer cæsarbiblioteket ved å kjøre følgende kommando i en notatblokkcelle.
install.packages("caesar")
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.