Udostępnij za pośrednictwem


Usługa Azure Databricks dla deweloperów języka Python

Ta sekcja zawiera przewodnik dotyczący opracowywania notesów i zadań w usłudze Azure Databricks przy użyciu języka Python, w tym samouczków dotyczących typowych przepływów pracy i zadań oraz linków do interfejsów API, bibliotek i narzędzi.

Aby rozpocząć pracę:

Samouczki

Poniższe samouczki zawierają przykładowy kod i notesy, aby dowiedzieć się więcej o typowych przepływach pracy. Zobacz Importowanie notesu , aby uzyskać instrukcje dotyczące importowania przykładów notesów do obszaru roboczego.

Inżynieria danych

Nauka o danych i uczenie maszynowe

Debugowanie w notatnikach Pythona

Przykładowy notes ilustruje sposób używania debugera języka Python (pdb) w notesach usługi Databricks. Aby użyć debugera języka Python, musisz uruchomić środowisko Databricks Runtime 11.3 LTS lub nowsze.

Za pomocą środowiska Databricks Runtime 12.2 LTS i nowszego możesz użyć Eksploratora zmiennych do śledzenia bieżącej wartości zmiennych języka Python w interfejsie użytkownika notesu. Eksplorator zmiennych umożliwia obserwowanie wartości zmiennych języka Python podczas przechodzenia przez punkty przerwania.

Przykładowy notatnik debuggera języka Python

Weź zeszyt

Uwaga

breakpoint() program nie jest obsługiwany w środowisku IPython i dlatego nie działa w notesach usługi Databricks. Możesz użyć import pdb; pdb.set_trace() zamiast breakpoint().

Interfejsy API języka Python

Kod języka Python uruchamiany poza usługą Databricks może być zwykle uruchamiany w usłudze Databricks i odwrotnie. Jeśli masz istniejący kod, po prostu zaimportuj go do usługi Databricks, aby rozpocząć pracę. Aby uzyskać szczegółowe informacje, zobacz Zarządzanie kodem za pomocą notesów i folderów Git w usłudze Databricks.

Usługa Databricks może uruchamiać zarówno obciążenia pojedynczego komputera, jak i rozproszonego języka Python. W przypadku przetwarzania jedno maszynowego można używać interfejsów API i bibliotek języka Python w zwykły sposób; na przykład biblioteki pandas i scikit-learn będą "po prostu działać". W przypadku rozproszonych obciążeń języka Python usługa Databricks oferuje dwa popularne interfejsy API gotowe do użycia: PySpark i interfejs API biblioteki Pandas na platformie Spark.

PySpark API

PySpark to oficjalny interfejs API języka Python dla platformy Apache Spark i łączy możliwości języka Python i platformy Apache Spark. PySpark jest bardziej elastyczny niż interfejs API Pandas w Spark i zapewnia rozbudowaną obsługę i funkcje z zakresu nauki o danych i inżynierii, takie jak Spark SQL, Structured Streaming, MLLib i GraphX.

Interfejs API biblioteki Pandas na platformie Apache Spark

Uwaga

Projekt open source Koalas obecnie zaleca przejście na interfejs API Pandas na platformie Spark. Interfejs API biblioteki Pandas na platformie Spark jest dostępny w klastrach z uruchomionym środowiskiem Databricks Runtime 10.0 (EoS) i nowszym. W przypadku klastrów z uruchomionym środowiskiem Databricks Runtime 9.1 LTS i nowszym należy zamiast tego użyć narzędzia Koalas .

Pandas to pakiet języka Python często używany przez analityków danych do analizy danych i manipulowania nimi. Jednak biblioteka pandas nie jest przystosowana do przetwarzania dużych zbiorów danych. Interfejs API biblioteki Pandas na platformie Spark wypełnia tę lukę, zapewniając równoważne interfejsy API biblioteki pandas działające na platformie Apache Spark. Ten interfejs API typu open source jest idealnym wyborem dla analityków danych, którzy znają bibliotekę pandas, ale nie platformę Apache Spark.

Zarządzanie kodem za pomocą notatników i folderów Git w Databricks.

Notatniki Databricks obsługują Pythona. Te notesy udostępniają funkcje podobne do tych z programu Jupyter, ale z dodatkami takimi jak wbudowane wizualizacje korzystające z danych big data, integracje platformy Apache Spark na potrzeby debugowania i monitorowania wydajności oraz integracje MLflow na potrzeby śledzenia eksperymentów uczenia maszynowego. Rozpocznij od zaimportowania notesu. Po uzyskaniu dostępu do klastra możesz przypiąć notebook do klastra i uruchomić notebook.

Napiwek

Aby zresetować stan notesu, uruchom ponownie jądro iPython. W przypadku użytkowników Jupytera opcja "uruchom jądro" w Jupyterze odpowiada odłączeniu i ponownemu dołączeniu notesu w usłudze Databricks. Aby ponownie uruchomić jądro w notesie języka Python, kliknij selektora zasobów obliczeniowych na pasku narzędzi notesu i umieść kursor na dołączonym klastrze lub usłudze SQL Warehouse na liście, aby wyświetlić menu boczne. Wybierz Odłącz & ponownie dołącz. Spowoduje to odłączenie notesu od klastra i ponowne dołączenie go, co powoduje ponowne uruchomienie procesu Pythona.

Foldery Git w Databricks pozwalają użytkownikom synchronizować notatniki i inne pliki z repozytoriami Git. Foldery Git usługi Databricks ułatwiają przechowywanie wersji kodu i współpracę oraz upraszcza importowanie pełnego repozytorium kodu do usługi Azure Databricks, wyświetlanie wcześniejszych wersji notesów i integrowanie z programowaniem środowiska IDE. Rozpocznij od klonowania zdalnego repozytorium Git. Następnie możesz otworzyć lub utworzyć notesy za pomocą klonowania repozytorium, dołączyć notes do klastra i uruchomić notes.

Klastry i biblioteki

Środowisko obliczeniowe usługi Azure Databricks zapewnia zarządzanie obliczeniami dla klastrów o dowolnym rozmiarze: od klastrów z jednego węzła do dużych klastrów. Możesz dostosować sprzęt i biblioteki klastra zgodnie z potrzebami. Analitycy danych zazwyczaj rozpoczną pracę, tworząc klaster lub używając istniejącego udostępnionego klastra. Po uzyskaniu dostępu do klastra możesz dołączyć notes do klastra lub uruchomić zadanie w klastrze.

  • W przypadku małych obciążeń, które wymagają tylko jednego węzła, analitycy danych mogą korzystać z obliczeń z jednym węzłem w celu uzyskania oszczędności kosztów.
  • Aby uzyskać szczegółowe porady, zobacz Zalecenia dotyczące konfiguracji obliczeniowej
  • Administratorzy mogą skonfigurować zasady klastra w celu uproszczenia i obsługi tworzenia klastra.

Klastry usługi Azure Databricks używają środowiska Databricks Runtime, które udostępnia wiele popularnych bibliotek, takich jak Apache Spark, Delta Lake, pandas i inne. Możesz również zainstalować dodatkowe biblioteki innych firm lub niestandardowe biblioteki języka Python do użycia z notesami i zadaniami.

Wizualizacje

Notatniki Pythona w Azure Databricks mają wbudowaną obsługę wielu typów wizualizacji. Możesz również użyć starszych wizualizacji.

Dane można również wizualizować przy użyciu bibliotek innych firm; niektóre z nich są wstępnie zainstalowane w środowisku Databricks Runtime, ale można również zainstalować biblioteki niestandardowe. Popularne opcje to:

Stanowiska

Obciążenia języka Python można zautomatyzować jako zaplanowane lub wyzwalane zadania w usłudze Databricks. Zadania mogą uruchamiać notesy, skrypty języka Python i pliki wheel języka Python.

  • Tworzenie i aktualizowanie zadań przy użyciu interfejsu użytkownika usługi Databricks lub interfejsu API REST usługi Databricks.
  • Zestaw SDK języka Python usługi Databricks umożliwia programowe tworzenie, edytowanie i usuwanie zadań.
  • Interfejs wiersza polecenia usługi Databricks CLI zapewnia wygodny sposób automatyzacji zadań.

Napiwek

Aby ustawić harmonogram skryptu w Pythonie zamiast notesu, użyj pola spark_python_task w sekcji tasks w treści żądania utworzenia zadania.

Uczenie maszynowe

Usługa Databricks obsługuje szeroką gamę obciążeń uczenia maszynowego, w tym tradycyjne uczenie maszynowe na danych tabelarycznych, uczenie głębokie do przetwarzania obrazów i języka naturalnego, systemy rekomendacji, analizę grafów i nie tylko. Aby uzyskać ogólne informacje na temat uczenia maszynowego w usłudze Databricks, zobacz Sztuczna inteligencja i uczenie maszynowe w usłudze Databricks.

W przypadku algorytmów uczenia maszynowego można używać wstępnie zainstalowanych bibliotek w środowisku Databricks Runtime for Machine Learning, w tym popularnych narzędzi języka Python, takich jak scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib i XGBoost. Można również zainstalować biblioteki niestandardowe.

W przypadku operacji uczenia maszynowego (MLOps) usługa Azure Databricks udostępnia usługę zarządzaną dla biblioteki open source MLflow. Dzięki funkcji śledzenia MLflow można rejestrować tworzenie modeli i zapisywać modele w formatach wielokrotnego użytku. Możesz użyć Rejestru modeli MLflow do zarządzania modelami i automatyzowania ich wprowadzania do produkcji. Zadania i obsługa modeli umożliwiają hostowanie modeli jako zadań wsadowych i przesyłanych strumieniowo oraz jako punktów końcowych REST. Aby uzyskać więcej informacji i przykładów, zobacz MLflow dotyczący agenta generatywnej sztucznej inteligencji i cyklu życia modelu uczenia maszynowego lub dokumentację Python API MLflow .

Aby rozpocząć pracę z typowymi obciążeniami uczenia maszynowego, zobacz następujące strony:

Środowiska IDE, narzędzia programistyczne i zestawy SDK

Oprócz tworzenia kodu w języku Python w notesach usługi Azure Databricks można opracowywać zewnętrznie przy użyciu zintegrowanych środowisk projektowych (IDE), takich jak PyCharm, Jupyter i Visual Studio Code. Aby zsynchronizować pracę między zewnętrznymi środowiskami projektowymi i usługą Databricks, istnieje kilka opcji:

  • Kod: kod można zsynchronizować przy użyciu narzędzia Git. Zobacz Integrację z usługą Git dla folderów Git usługi Databricks.
  • Biblioteki i zadania: biblioteki (takie jak pliki wheel języka Python) można tworzyć zewnętrznie i przekazywać je do usługi Databricks. Te biblioteki mogą być importowane w notesach usługi Databricks lub mogą służyć do tworzenia zadań. Zobacz Biblioteki i Omówienie orkiestracji w usłudze Databricks.
  • Wykonywanie zadań na zdalnej maszynie: możesz uruchomić kod z lokalnego IDE dla celów interaktywnego programowania i testowania. Środowisko IDE może komunikować się z usługą Azure Databricks w celu wykonywania obliczeń platformy Apache Spark i dużych obliczeń w klastrach usługi Azure Databricks. Zobacz Databricks Connect.

Usługa Databricks udostępnia zestaw zestawów SDK, w tym zestaw sdk python, który obsługuje automatyzację i integrację z zewnętrznymi narzędziami. Zestawy SDK usługi Databricks umożliwiają zarządzanie zasobami, takimi jak klastry i biblioteki, kod i inne obiekty obszaru roboczego, obciążenia i zadania itd. Zobacz zestawy SDK usługi Databricks.

Aby uzyskać więcej informacji na temat środowisk IDE, narzędzi deweloperskich i zestawów SDK, zobacz Lokalne narzędzia programistyczne.

Dodatkowe zasoby

  • Często zadawane pytania i porady dotyczące przenoszenia obciążeń języka Python do usługi Databricks można znaleźć w bazie wiedzy usługi Databricks