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ąć:

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 notesach języka Python

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 notes debugera języka Python

Pobierz notes

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 Manage code with notebooks and Databricks Git folders (Zarządzanie kodem za pomocą notesów i folderów Git usługi 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 elastyczna niż interfejs API biblioteki Pandas na platformie Spark i zapewnia rozbudowaną obsługę i funkcje nauki o danych i inżynierii, takie jak Spark SQL, Przesyłanie strumieniowe ze strukturą, MLLib i GraphX.

Interfejs API biblioteki Pandas na platformie Apache Spark

Uwaga

Projekt open source Koalas zaleca teraz przejście do interfejsu API biblioteki 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 skalowana w poziomie do danych big data. 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ą notesów i folderów Git usługi Databricks

Notesy usługi Databricks obsługują język Python. 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 dołączyć notes do klastra i uruchomić notes.

Napiwek

Aby całkowicie zresetować stan notesu, może być przydatne ponowne uruchomienie jądra iPython. W przypadku użytkowników programu Jupyter opcja "uruchom jądro" w programie Jupyter odpowiada odłączeniu i ponownym dołączeniu notesu w usłudze Databricks. Aby ponownie uruchomić jądro w notesie języka Python, kliknij selektor obliczeniowy 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 pozycję Odłącz i ponownie dołącz. Spowoduje to odłączenie notesu od klastra i ponowne dołączanie go, co powoduje ponowne uruchomienie procesu języka Python.

Foldery Usługi Git usługi Databricks umożliwiają użytkownikom synchronizowanie notesów i innych plików 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 sklonowania 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

Notesy języka Python usługi 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 zapewnia wygodny interfejs wiersza polecenia do automatyzacji zadań.

Napiwek

Aby zaplanować skrypt języka Python zamiast notesu, użyj spark_python_task pola 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 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. Rejestr modeli MLflow umożliwia zarządzanie modelami i automatyzowanie ich podwyższania poziomu 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 zarządzanie cyklem życia uczenia maszynowego przy użyciu biblioteki MLflow lub dokumentacji interfejsu API języka Python MLflow.

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

Środowiska IDE, narzędzia deweloperskie 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 Integracja 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 Planowanie i organizowanie przepływów pracy.
  • Zdalne wykonywanie maszyny: możesz uruchomić kod z lokalnego środowiska IDE na potrzeby 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 sdk, w tym zestaw SDK języka 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 o środowiskach IDE, narzędziach deweloperskich i zestawach SDK, zobacz Narzędzia programistyczne.

Dodatkowe zasoby