Udostępnij za pośrednictwem


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

Biblioteka to kolekcja wstępnie napisanego kodu, który deweloperzy mogą importować w celu zapewnienia funkcjonalności. Korzystając z bibliotek, możesz zaoszczędzić czas i nakład pracy, nie trzeba pisać kodu od podstaw w celu wykonywania typowych zadań. Zamiast tego zaimportuj bibliotekę i użyj jej funkcji i klas, aby osiągnąć żądane funkcje. 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.

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 wymagają one częstej aktualizacji, zainstalowanie bibliotek w środowisku i dołączenie ich do elementów kodu jest dobrym wyborem.

Upłynie trochę czasu, zanim biblioteki w środowiskach staną się skuteczne podczas publikacji. Zwykle trwa to 5–15 minut, w zależności od złożoności bibliotek. Podczas tego procesu system pomoże rozwiązać potencjalne konflikty i pobrać wymagane zależności.

Jedną z zalet tego podejścia jest to, że pomyślnie zainstalowane biblioteki są zagwarantowane, aby były dostępne po rozpoczęcia sesji platformy Spark z dołączonym środowiskiem. Pozwala zaoszczędzić nakład pracy na utrzymywaniu wspólnych bibliotek dla projektów.

Zdecydowanie zaleca się używanie scenariuszy przetwarzania potokowego ze względu na ich stabilność.

Scenariusz 3: Instalacja wbudowana w interaktywnym przebiegu

Jeśli używasz notesów do interaktywnego pisania kodu, użycie instalacji wbudowanej w celu dodania dodatkowych nowych bibliotek PyPI/conda lub zweryfikowanie bibliotek niestandardowych w celu jednorazowego użycia jest najlepszym rozwiązaniem. Polecenia w linii w Fabric pozwalają na efektywne korzystanie z biblioteki w bieżącej sesji Spark w notesie. Umożliwia szybką instalację, ale zainstalowana biblioteka nie jest utrwalana w różnych sesjach.

Ponieważ %pip install generowanie różnych drzew zależności powoduje czasem konflikty między bibliotekami, polecenia inline są domyślnie wyłączone podczas uruchamiania potoków i NIE zaleca się ich używania w twoich potokach.

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 obsługują zarządzanie bibliotekami w każdej sesji notatnika.

Instalacja śródliniowa języka Python

System ponownie uruchamia interpreter języka Python, aby zastosować zmianę bibliotek. Wszystkie zmienne zdefiniowane przed uruchomieniem komórki poleceń zostaną utracone. Zdecydowanie zalecamy umieszczenie wszystkich poleceń do dodawania, usuwania lub aktualizowania pakietów języka Python na początku notesu.

Polecenia wiersza poleceń do zarządzania bibliotekami języka Python są domyślnie wyłączone w procesie notatnika. Jeśli chcesz włączyć %pip install dla potoku, dodaj "_inlineInstallationEnabled" jako parametr logiczny równy True w parametrach aktywności notatnika.

Zrzut ekranu przedstawiający konfigurację włączania polecenia pip install dla uruchomienia potoku w notebooku.

Uwaga

Może %pip install to prowadzić do niespójnych wyników od czasu do czasu. Zaleca się zainstalowanie biblioteki w środowisku i użycie jej w potoku. Polecenie %pip install nie jest obecnie obsługiwane w trybie wysokiej współbieżności. W uruchomieniach odwołań do notesu polecenia wbudowane do zarządzania bibliotekami języka Python nie są obsługiwane. Aby zapewnić poprawność wykonywania, zaleca się usunięcie tych wbudowanych poleceń z przywołytowanego notesu.

Zalecamy %pip zamiast !pip. !pip to wbudowane polecenie powłoki IPython, które ma następujące ograniczenia:

  • !pip instaluje pakiet tylko na węźle sterownika, a nie na węzłach wykonawczych.
  • Pakiety instalowane za pomocą !pip nie wpływają na konflikty z pakietami wbudowanymi ani na to, czy pakiety są już zaimportowane w notebooku.

%pip Obsługuje jednak te scenariusze. Biblioteki zainstalowane za pomocą %pip są dostępne zarówno na węzłach sterownika, jak i wykonawczych, i są skuteczne, nawet jeśli 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.

Możesz chcieć użyć %conda install w celu zwiększenia niezawodności i stabilności. Możesz użyć %pip install, jeśli jesteś pewien, ż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 zobacz, jak zarządzać bibliotekami za pomocą poleceń wbudowanych. Załóżmy, że chcesz użyć altair, zaawansowanej biblioteki wizualizacji dla języka Python na potrzeby jednorazowej eksploracji danych. Załóżmy, że 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. Foldery zasobów to wbudowany system plików udostępniany przez każdy notatnik oraz środowisko. Aby uzyskać więcej informacji, zobacz Zasoby notesu. Po przesłaniu możesz przeciągnąć i upuścić bibliotekę niestandardową do komórki kodu, a polecenie instalacji biblioteki zostanie automatycznie wygenerowane. Możesz też użyć następującego polecenia do zainstalowania.

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

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 mają wsparcie podczas sesji notatnika 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",
    }
}        

Komórka kodu używa magazynu usługi Lakehouse jako przykładu. W Eksploratorze notatników możesz skopiować pełną ścieżkę ABFS pliku i użyć jej w kodzie. Zrzut ekranu przedstawiający polecenia menu umożliwiające pobranie ścieżki ABFS.