Azure Databricks dla deweloperów Python

Ta sekcja zawiera przewodnik dotyczący opracowywania notesów i zadań w 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 Python

W przykładowym notesie pokazano, jak używać debugera Python (pdb) w notesach usługi Databricks. Aby użyć debugera Python, musisz uruchomić środowisko Databricks Runtime 11.3 LTS lub nowsze.

W środowisku Databricks Runtime 12.2 LTS i nowszym można użyć eksploratora zmiennych do śledzenia bieżącej wartości zmiennych Pythona w interfejsie notebooka. Eksplorator zmiennych umożliwia obserwowanie wartości zmiennych Python podczas przechodzenia przez punkty przerwania.

przykładowy notatnik debuggera Python

Weź zeszyt

Uwaga

breakpoint() nie jest obsługiwany w IPythonie i dlatego nie działa w notatnikach Databricks. Możesz użyć import pdb; pdb.set_trace() zamiast breakpoint().

API w Pythonie

Kod Python uruchamiany poza Databricks może być zwykle uruchamiany także w 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ć obciążenia Python zarówno jednomaszynowe, jak i rozproszone. W przypadku przetwarzania jedno maszynowego można użyć interfejsów API i bibliotek Python jak zwykle. Na przykład biblioteka pandas i scikit-learn będą "po prostu działać". W przypadku rozproszonych obciążeń w Pythonie, usługa Databricks oferuje od razu dwa popularne interfejsy API: PySpark oraz interfejs API Pandas na Spark.

PySpark API

PySpark to oficjalny interfejs API Python dla platformy Apache Spark i łączy możliwości Python i Apache Spark. PySpark jest bardziej elastyczny niż interfejs API biblioteki Pandas na platformie Spark i oferuje rozbudowaną obsługę i funkcje do nauki o danych i inżynierii, takie jak Spark SQL, Przesyłanie strumieniowe ze strukturą, MLLib i GraphX.

API Pandas w 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 lub 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 jest pakietem Python używanym 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 usługi 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 programu Jupyter opcja "uruchom jądro" w programie Jupyter odpowiada rozpoczęciu nowej sesji w usłudze Databricks. Aby ponownie uruchomić jądro w notesie Python, kliknij selektor na pasku narzędzi notesu i umieść kursor na dołączonym klastrze lub magazynie SQL na liście, aby wyświetlić menu podręczne. Wybierz pozycję Nowa sesja. Spowoduje to uruchomienie nowej sesji, która ponownie uruchamia proces Python.

Foldery Git w Databricks pozwalają użytkownikom synchronizować notatniki i inne pliki z repozytoriami Git. Foldery Git w Databricks ułatwiają wersjonowanie kodu i współpracę oraz upraszczają importowanie pełnego repozytorium kodu do Azure Databricks, wyświetlanie wcześniejszych wersji notatników i integrację z IDE. Rozpocznij od klonowania zdalnego repozytorium Git. Następnie możesz otworzyć lub utworzyć notatniki, używając klonu repozytorium, dołączyć notatnik do klastra i uruchomić notatnik.

Klastry i biblioteki

Azure Databricks compute 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.

Azure Databricks klastry 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 Pythona do użycia z notebookami i zadaniami.

Wizualizacje

Azure Databricks Python notesy 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 Python można zautomatyzować zgodnie z harmonogramem lub wyzwalaną jobs w usłudze Databricks. Zadania mogą uruchamiać notatniki, skrypty Python i pliki wheel Python.

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

Napiwek

Aby zaplanować skrypt Python zamiast notesu, użyj pola spark_python_task w obszarze 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 dla Machine Learning, w tym popularnych narzędzi 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) 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 on Databricks lub MLflow Python API docs.

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 Python w notesach Azure Databricks można opracowywać zewnętrznie przy użyciu zintegrowanych środowisk deweloperskich (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 foldery Azure Databricks Git.
  • Libraries i Jobs: Biblioteki (takie jak pliki Python wheel) 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 Instalowanie bibliotek i Zadań Lakeflow.
  • 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 Azure Databricks w celu uruchamiania Apache Spark i dużych zadań obliczeniowych w klastrach Azure Databricks. Zobacz Databricks Connect.

Usługa Databricks udostępnia pakiet SDK, w tym pakiet 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ń Python do usługi Databricks można znaleźć w Databricks Knowledge Base.