Správa knihoven Apache Sparku v Microsoft Fabric

Knihovna je opakovaně použitelný balíček kódu , například balíček Pythonu z PyPI, balíček R z CRAN nebo Java JAR, který můžete importovat do svých poznámkových bloků a definic úloh Sparku, abyste mohli přidat funkce, aniž byste ho museli psát úplně od začátku. Microsoft Fabric poskytuje několik mechanismů, které vám pomůžou spravovat a používat knihovny.

  • Integrované knihovny: Každé prostředí runtime Fabric Spark nabízí bohatou sbírku populárních předinstalovaných knihoven. Úplný seznam předdefinovaných knihoven najdete v prostředí Fabric Spark Runtime.
  • Veřejné knihovny: Veřejné knihovny jsou zdrojové z úložišť, jako jsou PyPI a Conda, které jsou aktuálně podporované.
  • Vlastní knihovny: Vlastní knihovny odkazují na kód, který vy nebo vaše organizace sestavíte. Fabric je podporuje ve formátech .whl, .jar a .tar.gz. Fabric podporuje .tar.gz pouze pro jazyk R. Pro vlastní knihovny Pythonu použijte formát .whl .

Shrnutí osvědčených postupů správy knihoven

Následující scénáře popisují osvědčené postupy při používání knihoven v Microsoft Fabric.

Režimy publikování prostředí (Rychlé a Úplné)

Při instalaci knihoven v prostředí Fabric zvolíte režim publikování, který řídí, jak se knihovny doručují do relací Sparku.

  • Rychlý režim se publikuje přibližně za 5 sekund. Knihovny budou nainstalovány na začátku relace poznámkového bloku, nikoliv během publikování. Pokud má balíček v rychlém režimu stejný název jako balíček v úplném režimu, verze rychlého režimu přepíše verzi úplného režimu pouze pro tuto relaci. Rychlý režim používejte k rychlému a iterativnímu vývoji poznámkových bloků a experimentování v rané fázi.
  • Úplný režim vytvoří stabilní a reprodukovatelný snímek knihovny. Publikování obvykle trvá 3 až 6 minut, protože systém vyřeší závislosti a ověří kompatibilitu. Spuštění relace přidá 1 až 3 minuty pro nasazení závislostí podle jejich velikosti. Použijte kompletní režim pro potrubí, naplánovaná spuštění a sdílené úlohy, které vyžadují konzistentní a reprodukovatelná prostředí.

Plný režim s vlastním živým fondem

Pokud chcete zkombinovat stabilitu režimu Full s rychlými spuštěními relace, nakonfigurujte vlastní živý fond , který se připojuje k prostředí režimu Full Mode. Živý fond plní clustery snímkem knihovny v režimu Full předem, což zajišťuje přibližně 5sekundové časy spuštění relace a zároveň zachovává reprodukovatelný snímek.

Pro podrobnosti o jednotlivých režimech se podívejte na Správa knihoven v prostředích Fabric.

Scénář 1: Správce nastaví výchozí knihovny pro pracovní prostor

Pokud chcete nastavit výchozí knihovny, musíte být správcem pracovního prostoru. Jako správce můžete provádět tyto úlohy:

  1. Vytvoření nového prostředí
  2. Instalace požadovaných knihoven v prostředí
  3. Připojit toto prostředí jako výchozí pracovní prostor

Když jsou vaše poznámkové bloky a definice úloh Sparku připojené k nastavení pracovního prostoru, spustí relace s knihovnami nainstalovanými ve výchozím prostředí pracovního prostoru.

Scénář 2: Zachování specifikací knihovny pro jednu nebo více položek kódu

Pokud máte společné knihovny pro různé položky kódu a nemusíte je často aktualizovat, nainstalujte knihovny v prostředí a připojte je k položkám kódu.

Čas publikování závisí na zvoleném režimu. Rychlý režim se zveřejňuje přibližně za 5 sekund a nainstaluje knihovny při spuštění relace. Úplný režim řeší závislosti a vytváří stabilní snímek; publikování obvykle trvá 3 až 6 minut a spuštění relace může přidat 1 až 3 minuty na nasazení závislostí.

Výhodou tohoto přístupu je, že při spuštění relace Sparku s připojeným prostředím je zaručeno, že úspěšně nainstalované knihovny budou k dispozici. Šetří úsilí při údržbě společných knihoven pro vaše projekty a doporučuje se pro scénáře zpracování dat kvůli své stabilitě.

Scénář 3: Vložená instalace v interaktivním režimu

Pokud píšete kód interaktivně v poznámkovém bloku, je instalace přímo v kódu nejlepší způsob, jak přidávat knihovny PyPI nebo conda či ověřovat vlastní knihovny pro jednorázové použití. Vložené příkazy zpřístupní knihovnu pouze v aktuální relaci Sparku v rámci poznámkového bloku – umožňují rychlou instalaci, ale nainstalovaná knihovna se nepřenáší mezi relacemi.

Vzhledem k tomu, že %pip install může generovat různé stromy závislostí při každém spuštění, což může vést ke konfliktům knihoven, jsou vložené příkazy ve výchozím nastavení v rámci sestav vypnuty a není doporučeno je používat v rámci sestav.

Poznámka:

Knihovny nainstalované prostřednictvím vložených příkazů (například %pip install nebo %conda install) a knihovny přidané ze složky Resources poznámkového bloku nebo prostředí jsou omezeny na aktuální relaci nebo poznámkový blok. Nejsou ovlivněny publikováním prostředí, ať už v rychlém režimu, nebo v plném režimu.

Souhrn podporovaných typů knihoven

Typ knihovny Správa knihovny prostředí Vložená instalace
Veřejný Python (PyPI a Conda) Podporováno Podporováno
Vlastní Python (.whl) Podporováno Podporováno
Veřejné úložiště R (CRAN) Nepodporováno Podporováno
R vlastní (.tar.gz) Podporováno jako vlastní knihovna Podporováno
Jaro Podporováno jako vlastní knihovna Podporováno

Vložená instalace

Vložené příkazy umožňují spravovat knihovny v rámci jednotlivých relací poznámkového bloku.

Vložená instalace Pythonu

Systém restartuje interpret Pythonu, aby použil změny knihovny. Všechny proměnné definované před spuštěním buňky příkazu budou ztraceny. Všechny příkazy pro přidání, odstranění nebo aktualizaci balíčků Pythonu umístěte na začátek poznámkového bloku.

Vložené příkazy pro správu knihoven Pythonu jsou ve výchozím nastavení zakázány při běhu kanálu poznámkového bloku. Pokud chcete povolit %pip install pro potrubí, přidejte _inlineInstallationEnabled jako logický parametr nastavený na True v parametrech aktivity v poznámkovém bloku.

Snímek obrazovky znázorňující konfiguraci povolení instalace pipu pro spuštění kanálu poznámkového bloku

Poznámka:

Příkaz %pip install může vést k nejednotným výsledkům při opakovaném spuštění. Nainstalujte knihovny do prostředí a místo toho použijte prostředí v kanálu. Příkaz %pip install není podporován v režimu vysoké souběžnosti. Při referenčních spuštěních notebooků nejsou vložené příkazy pro správu knihoven Pythonu podporovány. Odeberte tyto vložené příkazy z odkazovaného poznámkového bloku, abyste zajistili správné spuštění.

Místo %pippoužijte !pip . Příkaz !pip je integrovaný příkaz prostředí IPython s následujícími omezeními:

  • !pip nainstaluje balíček pouze na uzel ovladače, nikoli na uzly exekutoru.
  • Balíčky nainstalované prostřednictvím !pip nezohledňují konflikty s integrovanými balíčky nebo balíčky, které již byly do poznámkového bloku importovány.

%pip zpracovává tyto scénáře. Knihovny nainstalované prostřednictvím %pip jsou k dispozici na uzlech ovladače i exekutoru a projeví se i v případě, že je knihovna již importována.

Návod

Příkaz %conda install obvykle trvá déle na instalaci nových knihoven Pythonu než příkaz %pip install. Kontroluje úplné závislosti a řeší konflikty.

Používejte %conda install pro větší spolehlivost a stabilitu. Použijte %pip install , pokud jste si jisti, že knihovna, kterou chcete nainstalovat, není v konfliktu s předinstalovanými knihovnami v prostředí runtime.

Všechny dostupné vložené příkazy a vysvětlení Pythonu najdete v tématu %pip a %conda.

Správa veřejných knihoven Pythonu prostřednictvím vložené instalace

Tento příklad ukazuje, jak ke správě knihoven používat vložené příkazy. Předpokládejme, že chcete použít altair, výkonnou knihovnu vizualizací pro Python, pro jednorázový průzkum dat a knihovna není ve vašem pracovním prostoru nainstalovaná. Následující příklad používá příkazy Conda k ilustraci kroků.

Vložené příkazy můžete použít k povolení altair ve vaší relaci poznámkového bloku, aniž by to ovlivnilo další relace poznámkového bloku nebo jiné položky.

  1. V buňce kódu poznámkového bloku spusťte následující příkazy. První příkaz nainstaluje knihovnu altair . Také nainstalujte vega_datasets, který obsahuje sémantický model, jenž můžete využít k vizualizaci.

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

    Výstup buňky označuje výsledek instalace.

  2. Importujte balíček a sémantický model spuštěním následujícího kódu v jiné buňce poznámkového bloku.

    import altair as alt
    from vega_datasets import data
    
  3. Teď si můžete pohrát s knihovnou altair s vymezeným oborem relace.

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

Správa vlastních knihoven Pythonu prostřednictvím vložené instalace

Vlastní knihovny Pythonu můžete nahrát do složky prostředků poznámkového bloku nebo připojeného prostředí. Složka zdrojů je integrovaný systém souborů poskytovaný každým poznámkovým blokem a prostředím. Další podrobnosti najdete v materiálech poznámkového bloku. Po nahrání knihovny ji můžete přetažením do buňky kódu automaticky vygenerovat příkaz install. Nebo můžete spustit následující příkaz:

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

Poznámka:

Vlastní knihovny nainstalované ze složky Prostředky prostřednictvím vložených příkazů jsou platné pro každou relaci a každý notebook. Publikování prostředí na tyto uživatele nemá vliv.

Vložená instalace jazyka R

K použití příkazů install.packages(), remove.packages() a devtools:: pro správu knihoven jazyka R podporuje Fabric. Všechny dostupné vložené příkazy jazyka R a vysvětlení najdete v příkazu install.packages a příkazu remove.package.

Správa veřejných knihoven R prostřednictvím vložené instalace

Postupujte podle tohoto příkladu a projděte si postup instalace veřejné knihovny jazyka R.

Instalace knihovny pro zdroje R:

  1. Na pásu karet poznámkového bloku přepněte pracovní jazyk na SparkR (R).

  2. Nainstalujte knihovnu caesar spuštěním následujícího příkazu v buňce poznámkového bloku.

    install.packages("caesar")
    
  3. Teď se pomocí úlohy Spark můžete pohrát s knihovnou caesar omezenou na relaci.

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

Správa knihoven Jar prostřednictvím vložené instalace

K relacím poznámkového bloku můžete přidat .jar soubory pomocí následujícího příkazu.

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

Předchozí buňka kódu používá úložiště lakehouse jako příklad. V Průzkumníku poznámkových bloků můžete zkopírovat úplnou cestu ABFS souboru a nahradit ji v kódu. Snímek obrazovky s příkazy z nabídky pro získání cesty ABFS