Správa knihoven Apache Sparku v Microsoft Fabric

Knihovna je kolekce předem napsaného kódu, která se dá importovat, aby poskytovala další funkce. Díky použití knihoven můžou vývojáři ušetřit čas a úsilí tím, že nemusí psát kód od začátku, aby mohli provádět běžné úlohy. Místo toho mohou knihovnu importovat a používat její funkce a třídy k dosažení požadované funkce. V Microsoft Fabric je k dispozici několik mechanismů, které vám pomůžou spravovat a používat knihovny.

  • Integrované knihovny: Každý modul runtime Sparku infrastruktury poskytuje bohatou sadu oblíbených předinstalovaných knihoven. Úplný seznam předdefinovaných knihoven najdete v prostředí Fabric Spark Runtime.
  • Veřejná knihovna: Veřejné knihovny jsou zdrojové z úložišť, jako jsou PyPI a Conda, které jsou aktuálně podporované.
  • Vlastní knihovna: Vlastní knihovny odkazují na kód vytvořený vámi nebo vaší organizací a podporují se ve formátech .whl, .jar a .tar.gz . Formát .tar.gz se podporuje pouze pro jazyk R. Pro vlastní knihovny Pythonu použijte formát .whl .

Správa knihovny v nastavení pracovního prostoru

Důležité

Správa knihovny v nastavení pracovního prostoru se už nepodporuje. Pokud chcete migrovat knihovny pracovních prostorů a vlastnosti Sparku do výchozího prostředí, můžete je migrovat do prostředí a připojit jako výchozí pracovní prostor.

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

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

Abyste mohli nastavit výchozí knihovny, musíte být správcem pracovního prostoru. Můžete vytvořit nové prostředí, nainstalovat požadované knihovny a pak toto prostředí připojit jako výchozí pracovní prostor v nastavení pracovního prostoru.

Poznámkové bloky a definice úloh Sparku v pracovním prostoru, které jsou připojené k Nastavení pracovního prostoru, začínají relacemi 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

Knihovny můžete nainstalovat v prostředí a připojit je k položkám kódu, pokud chcete zachovat specifikace knihovny.

Jednou z výhod je, že ušetří duplicitní úsilí, pokud spuštění kódu vyžaduje všechny společné knihovny. Po úspěšné instalaci v prostředí jsou efektivní ve všech relacích Sparku, pokud je prostředí připojené.

Další výhodou je, že se podporuje členitost konfigurace knihovny nižší než úroveň pracovního prostoru. Jedno prostředí je možné připojit k více artefaktům kódu. Pokud máte v jednom pracovním prostoru podmnožinu poznámkových bloků nebo definic úloh Sparku, které vyžadují stejné knihovny, připojte je ke stejnému prostředí. Správa, člena a přispěvatele pracovního prostoru může prostředí vytvářet, upravovat a připojovat.

Scénář 3: In-line instalace v interaktivním spuštění

Pokud chcete použít knihovnu, která není nainstalovaná pro jednorázové použití v interaktivním spuštění poznámkového bloku, je nejvhodnější možností instalace v řádku. Vložené příkazy v prostředcích infrastruktury umožňují mít knihovnu efektivní v aktuální relaci Sparku poznámkového bloku, ale neuchovává se napříč různými relacemi.

Uživatelé, kteří mají oprávnění ke spuštění poznámkového bloku, mohou do relace Sparku nainstalovat další knihovny.

Souhrn podporovaných typů knihoven

Typ knihovny Správa knihovny prostředí In-line instalace
Veřejný Python (PyPI a Conda) Podporováno Podporováno
Vlastní Python (.whl) Podporováno Podporováno
Veřejné R (CRAN) Nepodporováno Podporováno
Vlastní R (.tar.gz) Podporováno Podporováno
Jar Podporováno jako vlastní knihovna Nepodporováno

Důležité

V současné době máme omezení pro knihovnu .jar .

  • Pro uživatele Scala může soubor .jar , který přepíše integrovanou knihovnu jinou, úspěšně nainstalovat do prostředí, ale není efektivní pro relace Spark/Scala. Nové .jar v relacích funguje dobře.
  • Pro uživatele Pythonu se všechny soubory .jar v současné době nepodporují v prostředí, můžou se úspěšně nainstalovat do prostředí, ale ne efektivní v relacích PySpark.
  • Soubory .jar se můžou nainstalovat na úrovni relace poznámkového bloku.

In-line instalace

Vložené příkazy podporují knihovny Pythonu a knihovny jazyka R.

In-line instalace Pythonu

Důležité

Interpret Pythonu se restartuje, aby se použila změna knihoven. Všechny proměnné definované před spuštěním buňky příkazu budou ztraceny. Proto důrazně doporučujeme umístit všechny příkazy pro přidání, odstranění nebo aktualizaci balíčků Pythonu na začátku poznámkového bloku. %pip se doporučuje místo !pip. !pip je integrovaný příkaz prostředí IPython, který má následující omezení:

  • !pip nainstaluje balíček pouze na uzel ovladače bez uzlů exekutoru.
  • Balíčky, které se instalují přes !pip , nebudou mít vliv na konflikty s předdefinovanými balíčky nebo při jejich importu do poznámkového bloku.

%pip ale bude zpracovávat všechny výše uvedené scénáře. Knihovny nainstalované přes %pip budou k dispozici na uzlech ovladače i exekutoru a budou stále efektivní, i když už jsou importované.

Tip

  • Instalace nových knihoven Pythonu obvykle trvá déle než příkaz %pip install, protože kontroluje úplné závislosti a řeší konflikty. Pro větší spolehlivost a stabilitu můžete použít instalaci %conda. %pip install můžete použít, 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 Pythonu a jeho vysvětlení najdete: %pip a%conda

Správa veřejných knihoven Pythonu prostřednictvím in-line instalace

V tomto příkladu vám ukážeme, jak používat příkazy v řádku ke správě knihoven. Předpokládejme, že chcete k jednorázovému zkoumání dat použít altair, výkonnou knihovnu vizualizací pro Python. A předpokládejme, že knihovna není ve vašem pracovním prostoru nainstalovaná. V následujícím příkladu použijeme příkazy conda k ilustraci kroků.

Příkazy v řádku můžete použít k povolení altair v relaci poznámkového bloku, aniž by to ovlivnilo jiné relace poznámkového bloku nebo jiných položek.

  1. Spuštěním následujících příkazů v buňce kódu poznámkového bloku nainstalujte knihovnu altair a vega_datasets, která obsahuje sémantický model, který můžete použít k vizualizaci:

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

    Výstupem výstupu buňky je výsledek instalace.

  2. Importujte balíček a sémantický model spuštěním následujících kódů 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 in-line instalace

Vlastní knihovny Pythonu můžete nahrát do složky File (Soubor ) lakehouse připojeného k poznámkovému bloku. Přejděte do jezera, vyberte ikonu ... ve složce Soubor a nahrajte vlastní knihovnu.

Po nahrání můžete pomocí následujícího příkazu nainstalovat vlastní knihovnu do relace poznámkového bloku:

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

In-line instalace jazyka R

Prostředky infrastruktury podporují install.packages(), remove.packages() a devtools:: příkazy pro správu knihoven R.

Tip

Všechny dostupné příkazy jazyka R a vysvětlení najdete v příkazu install.packages a příkazu remove.package.

Správa veřejných knihoven jazyka R prostřednictvím in-line instalace

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

Instalace knihovny informačních kanálů 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ď si můžete pohrát s knihovnou caesar s vymezenou relací pomocí úlohy Sparku.

    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 in-line instalace

Soubory .jar podporují relace poznámkového bloku pomocí následujícího příkazu.

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