Zarządzanie bibliotekami platformy Apache Spark w usłudze Microsoft Fabric

Biblioteka to pakiet kodu wielokrotnego użytku — taki jak pakiet języka Python z PyPI, pakiet języka R z języka CRAN lub plik JAR języka Java — który można zaimportować do notesów i definicji zadań platformy Spark, aby dodać funkcje bez konieczności pisania go od podstaw. Usługa Microsoft Fabric udostępnia wiele mechanizmów, które ułatwiają zarządzanie bibliotekami i korzystanie z nich.

  • Wbudowane biblioteki: Każde środowisko uruchomieniowe Fabric Spark zapewnia bogaty zestaw popularnych wstępnie zainstalowanych bibliotek. Pełną listę wbudowanych bibliotek można znaleźć w środowisku Fabric Spark Runtime.
  • Biblioteki publiczne: biblioteki publiczne pochodzą z repozytoriów, takich jak PyPI i Conda, które są obecnie obsługiwane.
  • Biblioteki niestandardowe: biblioteki niestandardowe odwołują się do kodu utworzonego przez Ciebie lub Organizację. Fabric obsługuje je w formatach .whl, .jar i .tar.gz. Platforma obsługuje .tar.gz tylko dla języka R. W przypadku bibliotek niestandardowych języka Python użyj formatu .whl .

Podsumowanie najlepszych rozwiązań dotyczących zarządzania bibliotekami

W poniższych scenariuszach opisano najlepsze rozwiązania dotyczące korzystania z bibliotek w usłudze Microsoft Fabric.

Tryby publikowania środowiska (szybkie i pełne)

Podczas instalowania bibliotek w środowisku sieci szkieletowej wybierasz tryb publikowania, który kontroluje sposób dostarczania bibliotek do sesji platformy Spark.

  • Tryb szybki publikuje się w ciągu około 5 sekund. Biblioteki są zainstalowane po uruchomieniu sesji notatnika, a nie podczas publikowania. Jeśli pakiet trybu szybkiego ma taką samą nazwę jak pakiet trybu pełnego, wersja trybu szybkiego zastępuje wersję trybu pełnego tylko dla tej sesji. Użyj trybu szybkiego w celu szybkiego opracowywania notesów iteracyjnych i eksperymentowania na wczesnym etapie.
  • Tryb pełny tworzy stabilną, powtarzalną migawkę biblioteki. Publikowanie zwykle trwa od 3 do 6 minut, ponieważ system rozwiązuje zależności i weryfikuje zgodność. Uruchamianie sesji wydłuża się o 1 do 3 minut, w zależności od rozmiaru wdrażanych zależności. Użyj trybu pełnego dla potoków, zaplanowanych uruchomień i udostępnionych obciążeń, które wymagają powtarzalnych, spójnych środowisk.

Tryb pełny z niestandardową aktywną pulą

Aby połączyć stabilność trybu pełnego z uruchamianiem szybkiej sesji, skonfiguruj niestandardową pulę na żywo dołączaną do środowiska trybu pełnego. Pool na żywo uaktywnia klastry przy użyciu migawki biblioteki w trybie pełnym z wyprzedzeniem czasowym, umożliwiając około 5-sekundowy czas rozpoczęcia sesji przy jednoczesnym zachowaniu powtarzalnych migawek.

Aby uzyskać szczegółowe informacje na temat poszczególnych trybów, zobacz Zarządzanie bibliotekami w środowiskach Fabric.

Scenariusz 1. Administrator ustawia domyślne biblioteki dla obszaru roboczego

Aby ustawić biblioteki domyślne, musisz być administratorem obszaru roboczego. Jako administrator możesz wykonywać następujące zadania:

  1. Utwórz nowe środowisko
  2. Instalowanie wymaganych bibliotek w środowisku
  3. Dołączanie tego środowiska jako domyślnego obszaru roboczego

Gdy notesy i definicje zadań platformy Spark są dołączone do ustawień obszaru roboczego, rozpoczynają sesje z bibliotekami zainstalowanymi w domyślnym środowisku obszaru roboczego.

Scenariusz 2. Utrwalanie specyfikacji biblioteki dla jednego lub wielu elementów kodu

Jeśli masz wspólne biblioteki dla różnych elementów kodu i nie musisz ich często aktualizować, zainstaluj biblioteki w środowisku i dołącz je do elementów kodu.

Czas publikowania zależy od wybranego trybu. Tryb szybki publikuje w ciągu około 5 sekund i instaluje biblioteki na początku sesji. Ten tryb pełny rozwiązuje zależności i tworzy stabilną migawkę; publikacja zwykle trwa od 3 do 6 minut, a uruchomienie sesji dodaje 1 do 3 minut na wdrożenie zależności.

Zaletą tego podejścia jest to, że pomyślnie zainstalowane biblioteki są dostępne, gdy sesja platformy Spark rozpoczyna się ze zintegrowanym środowiskiem. Pozwala zaoszczędzić nakład pracy na utrzymywaniu wspólnych bibliotek dla projektów i jest zalecany w scenariuszach procesów potokowych ze względu na ich stabilność.

Scenariusz 3: Instalacja wbudowana w interaktywnym przebiegu

Jeśli piszesz kod interaktywnie w notesie, instalacja śródliniowa jest najlepszym rozwiązaniem do dodawania bibliotek PyPI lub conda lub weryfikowania bibliotek niestandardowych w celu jednorazowego użycia. Polecenia wbudowane udostępniają bibliotekę tylko w bieżącej sesji platformy Spark — umożliwiają szybką instalację, ale zainstalowana biblioteka nie jest utrwalana między sesjami.

Ponieważ %pip install może generować różne drzewa zależności od uruchomienia do uruchomienia, co może prowadzić do konfliktów bibliotek, polecenia inline są domyślnie wyłączone podczas uruchamiania potoków i nie są zalecane.

Uwaga

Biblioteki zainstalowane za pomocą poleceń inline (takich jak %pip install lub %conda install) oraz biblioteki dodane z zasobów folderu środowiska lub z notatnika są ograniczone do bieżącej sesji lub notatnika. Nie wpływa na nich publikowanie środowiska w trybie szybkim ani pełnym.

Podsumowanie obsługiwanych typów bibliotek

Typ biblioteki Zarządzanie biblioteką środowiska Instalacja śródliniowa
Publiczny język Python (PyPI i Conda) Obsługiwane Obsługiwane
Python Custom (.whl) Obsługiwane Obsługiwane
R Public (CRAN) Nie jest obsługiwane Obsługiwane
Niestandardowy język R (.tar.gz) Obsługiwana jako biblioteka dedykowana Obsługiwane
Słoik Obsługiwana jako biblioteka dedykowana Obsługiwane

Instalacja wewnętrzna

Polecenia w linii umożliwiają zarządzanie bibliotekami podczas poszczególnych sesji notebooka.

Instalacja śródliniowa języka Python

System ponownie uruchamia interpreter języka Python, aby zastosować zmiany biblioteki. Wszystkie zmienne zdefiniowane przed uruchomieniem komórki poleceń zostaną utracone. Umieść wszystkie polecenia na potrzeby dodawania, usuwania lub aktualizowania pakietów języka Python na początku notesu.

Wbudowane polecenia do zarządzania bibliotekami języka Python są domyślnie wyłączone w potokach notesów. Aby włączyć %pip install dla potoku, dodaj _inlineInstallationEnabled jako parametr logiczny ustawiony na True w parametrach aktywności notesu.

Zrzut ekranu przedstawiający konfigurację włączania instalacji pip dla uruchomienia potoku notesu.

Uwaga

Polecenie %pip install może generować niespójne wyniki przy każdym uruchomieniu. Zainstaluj biblioteki w środowisku i zamiast tego użyj środowiska w potoku. Polecenie %pip install nie jest obsługiwane w trybie wysokiej współbieżności. W uruchomieniach referencyjnych notesów polecenia w linii do zarządzania bibliotekami Python nie są obsługiwane. Usuń te wbudowane polecenia z notesu, do którego odwołuje się odwołanie, aby zapewnić poprawne wykonanie.

Użyj %pip zamiast !pip. Polecenie !pip to wbudowane polecenie powłoki IPython z następującymi ograniczeniami:

  • !pip instaluje pakiet tylko w węźle sterownika, a nie w węzłach funkcji wykonawczej.
  • Pakiety zainstalowane za pośrednictwem !pip nie uwzględniają konfliktów z wbudowanymi pakietami lub pakietami już zaimportowanymi w notatniku.

%pip obsługuje te scenariusze. Biblioteki zainstalowane przez %pip są dostępne zarówno w węzłach sterowników, jak i węzłach wykonawczych i działają nawet wtedy, gdy biblioteka jest już zaimportowana.

Napiwek

Polecenie %conda install zwykle trwa dłużej niż %pip install polecenie, aby zainstalować nowe biblioteki języka Python. Sprawdza pełne zależności i rozwiązuje konflikty.

Użyj %conda install dla większej niezawodności i stabilności. Użyj %pip install polecenia , jeśli masz pewność, że biblioteka, którą chcesz zainstalować, nie powoduje konfliktu ze wstępnie zainstalowanymi bibliotekami w środowisku uruchomieniowym.

Aby uzyskać wszystkie dostępne polecenia inline i wyjaśnienia języka Python, zobacz polecenia %pip oraz polecenia %conda.

Zarządzanie bibliotekami publicznymi języka Python za pomocą instalacji wbudowanej

W tym przykładzie pokazano, jak używać poleceń wbudowanych do zarządzania bibliotekami. Załóżmy, że chcesz użyć biblioteki altair, zaawansowanej biblioteki wizualizacji dla języka Python na potrzeby jednorazowej eksploracji danych, a biblioteka nie jest zainstalowana w obszarze roboczym. W poniższym przykładzie użyto poleceń conda, aby zilustrować kroki.

Możesz użyć wbudowanych poleceń, aby włączyć altair w sesji notebooka bez wpływu na inne sesje notebooka lub inne elementy.

  1. Uruchom następujące polecenia w komórce kodu notesu. Pierwsze polecenie instaluje bibliotekę altair . Ponadto zainstaluj vega_datasets, która zawiera semantyczny model, którego można użyć do wizualizacji.

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

    Dane wyjściowe komórki wskazują wynik instalacji.

  2. Zaimportuj pakiet i model semantyczny, uruchamiając następujący kod w innej komórce notesu.

    import altair as alt
    from vega_datasets import data
    
  3. Teraz możesz eksperymentować z biblioteką altair o zakresie sesji.

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

Zarządzanie bibliotekami niestandardowymi języka Python za pomocą instalacji wbudowanej

Możesz przesłać swoje niestandardowe biblioteki języka Python do folderu zasobów notatnika lub do dołączonego środowiska. Folder "resources" jest wbudowanym systemem plików dostępnym w każdym notatniku i środowisku. Aby uzyskać więcej informacji, zobacz Zasoby notesu. Po załadowaniu biblioteki możesz przeciągnąć ją i upuścić w komórkę kodu, aby automatycznie wygenerować polecenie instalacji. Możesz też uruchomić następujące polecenie:

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

Uwaga

Biblioteki niestandardowe zainstalowane z folderu Resources za pomocą komend inline są specyficzne dla każdej sesji i każdego notesu. Nie wpływa na nie publikowanie środowiskowe.

Instalacja śródliniowa języka R

Aby zarządzać bibliotekami języka R, usługa Fabric obsługuje install.packages()polecenia , remove.packages()i devtools:: . Aby uzyskać wszystkie dostępne polecenia wbudowane języka R i wyjaśnienia, zobacz polecenie install.packages i polecenie remove.package.

Zarządzanie bibliotekami publicznymi języka R za pośrednictwem instalacji wbudowanej

Postępuj zgodnie z tym przykładem, aby zapoznać się z krokami instalowania publicznej biblioteki języka R.

Aby zainstalować bibliotekę R feed:

  1. Przełącz język roboczy na SparkR (R) w menu wstążki notesu.

  2. Zainstaluj bibliotekę caesar , uruchamiając następujące polecenie w komórce notesu.

    install.packages("caesar")
    
  3. Teraz możesz pobawić się z biblioteką caesar w kontekście sesji za pomocą zadania Spark.

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

Zarządzanie bibliotekami Jar za pomocą instalacji wbudowanej

Pliki .jar można dodać do sesji notesu za pomocą następującego polecenia.

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

Poprzednia komórka kodu wykorzystuje magazyn lakehouse jako przykład. W Eksploratorze notesów możesz skopiować pełną ścieżkę ABFS pliku i zastąpić ją w kodzie. Zrzut ekranu przedstawiający polecenia menu umożliwiające pobranie ścieżki ABFS.