Spravovanie knižníc Apache Spark v službe Microsoft Fabric

Knižnica je opakovane použiteľný balík kódu — napríklad Python balík od PyPI, R balík od CRAN alebo Java JAR — ktorý môžete importovať do svojich zápisníkov a definícií úloh v Sparku, aby ste pridali funkcionalitu bez nutnosti písať ju od nuly. Microsoft Fabric poskytuje viacero mechanizmov, ktoré vám pomôžu spravovať a používať knižnice.

  • Vstavané knižnice: Každý modul runtime služby Fabric Spark poskytuje bohatú množinu populárnych predinštalovaných knižníc. Úplný zoznam vstavaných knižníc nájdete v službe Fabric Spark Runtime.
  • Verejné knižnice: Verejné knižnice sa získavajú z odkladacích priestorov, ako sú PyPI a Conda, ktoré sú v súčasnosti podporované.
  • Vlastné knižnice: Vlastné knižnice odkazujú na kód, ktorý ste vytvorili vy alebo vaša organizácia. Fabric ich podporuje vo formátoch .whl, .jar a .tar.gz . Fabric podporuje .tar.gz len pre jazyk R. Pre vlastné knižnice jazyka Python použite formát .whl .

Súhrn osvedčených postupov spravovania knižníc

Nasledujúce scenáre popisujú najlepšie postupy pri používaní knižníc v Fabric.

Režimy publikovania prostredia (Rýchle vs Plné)

Keď inštalujete knižnice v prostredí Fabric, zvolíte režim publikovania, ktorý riadi, ako sa knižnice doručujú do vašich Spark relácií.

  • Rýchly režim sa publikuje približne za 5 sekúnd. Knižnice sa inštalujú pri začiatku relácie zápisníka, nie počas publikovania. Ak má balík rýchly režim rovnaký názov ako balík plného režimu, verzia rýchleho režimu prepíše plnú verziu len pre túto reláciu. Použite rýchly režim na rýchly, iteratívny vývoj zápisníka a experimentovanie v počiatočných fázach.
  • Plný režim vytvára stabilný, reprodukovateľný snapshot knižnice. Publikovanie zvyčajne trvá 3 až 6 minút, pretože systém rieši závislosti a overuje kompatibilitu. Spustenie relácie pridáva 1 až 3 minúty na nasadenie závislostí, v závislosti od veľkosti závislosti. Použite Full mode pre pipeline, plánované spustenia a zdieľané pracovné zaťaženia, ktoré vyžadujú konzistentné, reprodukovateľné prostredia.

Plný režim s vlastným živým poolom

Aby ste spojili stabilitu režimu Full s rýchlymi začiatkami relácií, nakonfigurujte vlastný live pool , ktorý sa pripojí k prostrediu režimu full. Živý bazén hydratuje zhluky pomocou snapshotu knižnice Full mode vopred, čo umožňuje približne 5-sekundové začiatok relácie a zároveň zachováva reprodukovateľný snapshot.

Podrobnosti o každom režime nájdete v časti Spravovať knižnice v Fabric prostrediach.

Scenár 1: Správca nastaví predvolené knižnice pre pracovný priestor

Ak chcete nastaviť predvolené knižnice, musíte byť správcom pracovného priestoru. Ako správca môžete vykonávať tieto úlohy:

  1. Vytvorte nové prostredie
  2. Inštalácia požadovaných knižníc v prostredí
  3. Pripojte toto prostredie ako predvolené pracovné prostredie

Keď sú vaše poznámkové bloky a definície úloh služby Spark pripojené k nastaveniam pracovného priestoru, začnú relácie s knižnicami inštalovanými v predvolenom prostredí pracovného priestoru.

Scenár 2: Zachovať špecifikácie knižnice pre jednu alebo viacero položiek kódu

Ak máte spoločné knižnice pre rôzne položky kódu a nemusíte ich často aktualizovať, nainštalujte knižnice v prostredí a pripojte ich k položkám kódu.

Čas publikovania závisí od zvoleného režimu. Rýchly režim publikuje približne za 5 sekúnd a knižnice sa inštalujú hneď na začiatku relácie. Plný režim rieši závislosti a vytvára stabilný snapshot; Zvyčajne trvá publikovanie 3 až 6 minút a spustenie relácie pridáva 1 až 3 minúty na nasadenie závislostí.

Výhodou tohto prístupu je, že úspešne nainštalované knižnice sú zaručene dostupné, keď sa začne Spark session s pripojeným prostredím. Šetrí to námahu pri udržiavaní spoločných knižníc pre vaše projekty a odporúča sa pre pipeline scenáre kvôli svojej stabilite.

Scenár 3: Vnorená inštalácia v interaktívnom spustení

Ak píšete kód interaktívne v notebooku, inline inštalácia je najlepším prístupom na pridávanie knižníc PyPI alebo conda, prípadne na overovanie vlastných knižníc na jednorazové použitie. Inline príkazy sprístupnia knižnicu iba v aktuálnej Spark relácii notebooku — umožňujú rýchlu inštaláciu, ale nainštalovaná knižnica sa nepretrváva naprieč reláciami.

Keďže %pip install môžu generovať rôzne závislostné stromy z behu na beh, čo môže viesť ku konfliktom knižníc, príkazy v pipeline sú štandardne vypnuté a neodporúčajú sa pre pipeline.

Poznámka

Knižnice nainštalované pomocou príkazov v priamom texte (ako %pip install alebo %conda install) a knižnice pridané z priečinka Resources v notebooku alebo prostredí sú prispôsobené aktuálnej relácii alebo zápisníku. Nie sú ovplyvnené publikovaním prostredia ani v rýchlom ani plnom režime.

Súhrn podporovaných typov knižníc

Typ knižnice Správa knižnice prostredia Vnorená inštalácia
Verejné v jazyku Python (PyPI a Conda) Podporované Podporované
Vlastný jazyk Python (.whl) Podporované Podporované
R Verejné (CRAN) Nie je podporované Podporované
Vlastný jazyk R (.tar.gz) Podporované ako vlastná knižnica Podporované
Nádoba Podporované ako vlastná knižnica Podporované

Vnorená inštalácia

Inline príkazy vám umožňujú spravovať knižnice v rámci jednotlivých relácií zápisníka.

Vnorená inštalácia jazyka Python

Systém reštartuje Python interpreter, aby aplikoval zmeny knižnice. Všetky premenné definované pred spustením bunky príkazu sa stratia. Všetky príkazy na pridávanie, mazanie alebo aktualizáciu Python balíkov dajte na začiatok svojho zápisníka.

Príkazy v texte na správu Python knižníc sú v notebookových pipeline spusteniach predvolene zakázané. Pre povolenie %pip install pipeline pridajte _inlineInstallationEnabled ako booleovský parameter nastavený do v True parametroch aktivity zápisníka.

Snímka obrazovky ukazujúca konfiguráciu povolenia inštalácie pip pre spustenie notebookového pipeline.

Poznámka

Príkaz %pip install môže prinášať nekonzistentné výsledky z behu na beh. Inštalujte knižnice v prostredí a používajte prostredie v pipeline namiesto toho. Tento %pip install príkaz nie je podporovaný v režime vysokej súbežnosti. Pri referenčných behoch zápisníka nie sú podporované príkazy na správu Python knižníc. Odstráňte tieto inline príkazy z odkazovaného zápisníka, aby ste zabezpečili správne vykonanie.

Namiesto %pippoužite !pip . Príkaz !pip je vstavaný shell príkaz IPython s nasledujúcimi obmedzeniami:

  • !pip nainštaluje balík iba na node ovládača, nie na uzloch executoru.
  • Balíky nainštalované cez !pip nezohľadňujú konflikty s vstavanými balíkmi alebo balíkmi už importovanými v notebooku.

%pip zvláda tieto situácie. Knižnice nainštalované cez sú %pip dostupné na uzloch ovládačov aj executora a uplatňujú sa aj v prípade, že knižnica je už importovaná.

Prepitné

Príkaz %conda install zvyčajne trvá dlhšie, než príkaz na inštaláciu %pip install nových knižníc jazyka Python. Skontroluje všetky závislosti a vyrieši konflikty.

Používajte pre %conda install väčšiu spoľahlivosť a stabilitu. Používajte %pip install , ak ste si istí, že knižnica, ktorú chcete nainštalovať, nekoliduje s predinštalovanými knižnicami v runtime prostredí.

Všetky dostupné príkazy a objasnenia v jazyku Python nájdete v príkazoch %pip a príkazoch %conda.

Spravovanie verejných knižníc jazyka Python prostredníctvom vnorenej inštalácie

Tento príklad ukazuje, ako používať inline príkazy na správu knižníc. Predstavte si, že chcete použiť altair, výkonnú vizualizačnú knižnicu pre Python, na jednorazové skúmanie dát, a knižnica nie je nainštalovaná vo vašom pracovnom priestore. Nasledujúci príklad znázorňuje kroky pomocou príkazov conda.

Pomocou vnorených príkazov môžete povoliť altair v relácii poznámkového bloku bez toho, aby to ovplyvnilo iné relácie poznámkového bloku alebo iných položiek.

  1. V bunke kódu poznámkového bloku spustite nasledujúce príkazy. Prvý príkaz nainštaluje knižnicu altair . Nainštalujte si tiež vega_datasets, ktorý obsahuje sémantický model, ktorý môžete použiť na vizualizáciu.

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

    Výstup bunky udáva výsledok inštalácie.

  2. Importujte balík a sémantický model spustením nasledujúceho kódu v inej bunke poznámkového bloku.

    import altair as alt
    from vega_datasets import data
    
  3. Teraz sa môžete pohrať s knižnicou altair v rámci relácie.

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

Spravovanie vlastných knižníc jazyka Python prostredníctvom vnorenej inštalácie

Vlastné knižnice jazyka Python môžete nahrať do priečinka zdrojov poznámkového bloku alebo do pripojeného prostredia. Priečinok resources je zabudovaný súborový systém poskytovaný každým notebookom a prostredím. Ďalšie podrobnosti nájdete v téme Poznámkové bloky . Po nahraní knižnice ju môžete potiahnuť do kódovej bunky a automaticky vygenerovať inštalačný príkaz. Alebo môžete spustiť nasledujúci príkaz:

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

Poznámka

Vlastné knižnice inštalované z priečinka Resources cez príkazy sú pre každú reláciu a pre zápisník. Nie sú ovplyvnení environmentálnym publikovaním.

Vnorená inštalácia jazyka R

Na spravovanie knižníc R podporuje install.packages()fabric príkazy , remove.packages()a devtools:: . Všetky dostupné príkazy r vnorenia a objasnenia nájdete v príkaze install.packages a remove.package.

Spravovanie verejných knižníc jazyka R prostredníctvom vnorenej inštalácie

Postupujte podľa tohto príkladu a prejdite si kroky inštalácie verejnej knižnice jazyka R.

Inštalácia knižnice informačného kanála R:

  1. Prepnite pracovný jazyk na sparkr (R) na páse s nástrojmi poznámkového bloku.

  2. Nainštalujte knižnicu notebookov spustením nasledujúceho príkazu v bunke poznámkového bloku.

    install.packages("caesar")
    
  3. Teraz sa môžete pohrať s knižnicou čakaní pri konfigurácii počas relácie pomocou úlohy Spark.

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

Spravovanie knižníc Jar prostredníctvom vnorenej inštalácie

.jar súbory môžete pridať do relácií zápisníka pomocou nasledujúceho príkazu.

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

Predchádzajúca kódová bunka používa ako príklad lakehouse storage. V prieskumníku zápisníka môžete skopírovať celú ABFS cestu súboru a nahradiť ju v kóde. Snímka obrazovky s príkazmi v ponuke na získanie cesty K ABFS.