Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby udostępnić aplikacjom kod innej firmy lub lokalny, możesz zainstalować bibliotekę na jednej z bezserwerowych pul zadań platformy Apache Spark. Pakiety wymienione w pliku requirements.txt są pobierane z repozytorium PyPi w momencie uruchomienia puli. Ten plik wymagań jest używany za każdym razem, gdy instancja Spark jest tworzona z tej puli Spark. Po zainstalowaniu biblioteki dla puli zadań platformy Spark jest ona dostępna dla wszystkich sesji korzystających z tej samej puli.
W niektórych przypadkach może się okazać, że biblioteka nie jest wyświetlana w puli zadań platformy Apache Spark. Ten przypadek występuje często, gdy w pliku requirements.txt lub w określonych bibliotekach jest błąd. Gdy błąd wystąpi w procesie instalacji biblioteki, pula zadań platformy Apache Spark przywróci biblioteki określone w podstawowym środowisku uruchomieniowym usługi Synapse.
Celem tego dokumentu jest opisanie typowych problemów i pomoc w debugowaniu błędów podczas instalowania bibliotek.
Wymuś aktualizację puli Apache Spark
Po zaktualizowaniu bibliotek w puli zadań platformy Apache Spark zmiany zostaną pobrane po ponownym uruchomieniu puli. Jeśli masz aktywne zadania, zadania te będą nadal działać w oryginalnej wersji puli zadań platformy Spark.
Zmiany do zastosowania można wymusić, wybierając opcję Wymuś nowe ustawienia. To ustawienie spowoduje zakończenie wszystkich bieżących sesji dla wybranej puli zadań platformy Spark. Po zakończeniu sesji należy poczekać na ponowne uruchomienie puli.
Śledzenie postępu instalacji
Zarezerwowane w systemie zadanie platformy Spark jest uruchamiane zawsze podczas aktualizowania puli przy użyciu nowego zestawu bibliotek. To zadanie platformy Spark pomaga monitorować stan instalacji bibliotek. Jeśli instalacja zakończy się niepowodzeniem z powodu konfliktów bibliotek lub innych problemów, pula zadań platformy Spark powróci do poprzedniego lub domyślnego stanu.
Ponadto użytkownicy mogą również sprawdzać dzienniki instalacji, aby zidentyfikować konflikty zależności, lub sprawdzić, które biblioteki zostały zainstalowane podczas aktualizacji puli.
Aby wyświetlić te dzienniki:
- Przejdź do listy aplikacji platformy Spark na karcie Monitorowanie.
- Wybierz zadanie aplikacji platformy Spark systemu odpowiadające aktualizacji puli. Te zadania systemowe działają pod tytułem SystemReservedJob-LibraryManagement.
- Przełącz się, aby wyświetlić dzienniki sterownika i stdout.
- W wynikach zobaczysz dzienniki związane z instalacją pakietów.
Śledzenie błędów instalacji
W niektórych przypadkach użytkownicy mogą również sprawdzić pełne dzienniki instalacji dostępne na serwerze historii platformy Spark, aby zidentyfikować złożone konflikty zależności. Dzienniki dostępne za pośrednictwem interfejsu użytkownika platformy Spark można obcinać i uzyskiwać dostęp do pełnych dzienników instalacji na serwerze historii platformy Spark, co może być przydatne w złożonych scenariuszach instalacji bibliotek.
Aby wyświetlić pełne dzienniki instalacji:
- Przejdź do listy aplikacji platformy Spark na karcie Monitorowanie.
- Wybierz zadanie aplikacji platformy Spark systemu odpowiadające aktualizacji puli zakończonej niepowodzeniem. Te zadania systemowe są uruchamiane pod tytułem SystemReservedJob-LibraryManagement.
- Wybierz wyróżnioną opcję Serwer historii Spark, która otworzy stronę szczegółów serwera historii Spark na nowej karcie.

- Na tej stronie można zobaczyć 2 próby. Wybierz pozycję Próba 1, jak pokazano poniżej.
- Na górnym pasku nawigacyjnym na stronie serwera historii platformy Spark przejdź do karty Egzekutory.

- Pobierz pliki logów strumieni stdout i stderr, aby uzyskać dostęp do pełnego wyniku zarządzania biblioteką i dzienników błędów.
Weryfikowanie uprawnień
Aby zainstalować i zaktualizować biblioteki, musisz mieć uprawnienia Storage Blob Data Contributor lub Storage Blob Data Owner na podstawowym koncie usługi Azure Data Lake Storage Gen2 połączonym z obszarem roboczym Azure Synapse Analytics.
Aby sprawdzić, czy masz te uprawnienia, możesz uruchomić następujący kod:
from pyspark.sql.types import StructType,StructField, StringType, IntegerType
data2 = [("James","Smith","Joe","4355","M",3000),
("Michael","Rose","Edward","40288","F",4000)
]
schema = StructType([ \
StructField("firstname",StringType(),True), \
StructField("middlename",StringType(),True), \
StructField("lastname",StringType(),True), \
StructField("id", StringType(), True), \
StructField("gender", StringType(), True), \
StructField("salary", IntegerType(), True) \
])
df = spark.createDataFrame(data=data2,schema=schema)
df.write.csv("abfss://<<ENTER NAME OF FILE SYSTEM>>@<<ENTER NAME OF PRIMARY STORAGE ACCOUNT>>.dfs.core.windows.net/validate_permissions.csv")
Jeśli wystąpi błąd, prawdopodobnie brakuje wymaganych uprawnień. Aby dowiedzieć się, jak uzyskać wymagane uprawnienia, odwiedź ten dokument: Przypisywanie współautora danych obiektu blob usługi Storage lub uprawnienia właściciela danych obiektu blob usługi Storage.
Ponadto, jeśli uruchamiasz Pipeline, zarządzana tożsamość usługi Workspace MSI musi mieć również uprawnienia właściciela lub współautora danych blob dla Storage. Aby dowiedzieć się, jak nadać to uprawnienie tożsamości zarządzanej obszaru roboczego, odwiedź stronę: Nadawanie uprawnień tożsamości zarządzanej obszaru roboczego.
Sprawdzanie pliku konfiguracji środowiska
Plik konfiguracji środowiska może służyć do uaktualniania środowiska Conda. Te dopuszczalne formaty plików do zarządzania pulą języka Python są wymienione jako Specyfikacje środowiska.
Należy pamiętać o następujących ograniczeniach:
- Zawartość pliku wymagań nie może zawierać dodatkowych pustych wierszy ani znaków.
- Środowisko Uruchomieniowe usługi Synapse zawiera zestaw bibliotek, które są wstępnie zainstalowane w każdej bezserwerowej puli platformy Apache Spark. Nie można usunąć ani odinstalować pakietów wstępnie zainstalowanych w podstawowym środowisku uruchomieniowym.
- Zmiana wersji PySpark, Python, Scala/Java, .NET lub Spark nie jest obsługiwana.
- Biblioteki o zakresie sesji w Pythonie akceptują tylko pliki z rozszerzeniem YML.
Weryfikowanie plików koła
Serwerlessowe pule platformy Apache Spark w usłudze Synapse są oparte na dystrybucji Linux. Podczas pobierania i instalowania plików Wheel bezpośrednio z PyPI należy wybrać wersję, która jest przygotowana na Linuxie i działa w tej samej wersji języka Python co pula Spark.
Ważne
Pakiety niestandardowe można dodawać lub modyfikować między sesjami. Należy jednak poczekać na ponowne uruchomienie puli i sesji, aby zobaczyć zaktualizowany pakiet.
Sprawdzanie konfliktów zależności
Ogólnie rzecz biorąc rozwiązanie zależności języka Python może być trudne do zarządzania. Aby ułatwić lokalne debugowanie konfliktów zależności, możesz utworzyć własne środowisko wirtualne na podstawie środowiska uruchomieniowego usługi Synapse i zweryfikować zmiany.
Aby ponownie utworzyć środowisko i zweryfikować aktualizacje:
Pobierz szablon, aby lokalnie utworzyć ponownie środowisko uruchomieniowe usługi Synapse. Mogą wystąpić niewielkie różnice między szablonem a rzeczywistym środowiskiem usługi Synapse.
Utwórz środowisko wirtualne, korzystając z poniższych instrukcji. To środowisko umożliwia utworzenie izolowanej instalacji języka Python z określoną listą bibliotek.
conda myenv create -f environment.yml conda activate myenvUżyj
pip install -r <provide your req.txt file>polecenia , aby zaktualizować środowisko wirtualne przy użyciu określonych pakietów. Jeśli instalacja spowoduje wystąpienie błędu, może wystąpić konflikt między elementami wstępnie zainstalowanymi w podstawowym środowisku uruchomieniowym usługi Synapse i określonymi w podanym pliku wymagań. Te konflikty zależności należy rozwiązać, aby można było pobrać zaktualizowane biblioteki w bezserwerowej puli platformy Apache Spark.
Ważne
Problemy mogą wystąpić podczas używania pip i conda razem. Podczas łączenia pip i conda najlepiej jest postępować zgodnie z tymi zalecanymi najlepszymi praktykami.
Następne kroki
- Wyświetlanie bibliotek domyślnych: obsługa wersji platformy Apache Spark