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ąć:
- Importuj kod: zaimportuj własny kod z plików lub repozytoriów Git lub spróbuj wykonać samouczek wymieniony poniżej. Usługa Databricks zaleca naukę przy użyciu interaktywnych notesów usługi Databricks.
- Uruchom kod w klastrze: utwórz własny klaster lub upewnij się, że masz uprawnienia do korzystania z udostępnionego klastra. Dołącz notes do klastra i uruchom notes.
- Następnie możesz wykonać następujące czynności:
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
- Samouczek: ładowanie i przekształcanie danych przy użyciu ramek danych platformy Apache Spark zawiera przewodnik ułatwiający poznanie ramek danych platformy Apache Spark na potrzeby przygotowywania i analizy danych.
- Samouczek: usługa Delta Lake.
- Samouczek: uruchamianie pierwszego potoku delta live tables.
Nauka o danych i uczenie maszynowe
- Wprowadzenie do ramek danych platformy Apache Spark na potrzeby przygotowywania i analizy danych: Samouczek: ładowanie i przekształcanie danych przy użyciu ramek danych platformy Apache Spark
- Samouczek: kompleksowe modele uczenia maszynowego w usłudze Azure Databricks. Aby uzyskać dodatkowe przykłady, zobacz Tutorials: Get started with AI and machine learning (Samouczki: wprowadzenie do sztucznej inteligencji i uczenia maszynowego) oraz przewodnik Szybki start dotyczący języka Python przewodnika MLflow.
- Rozwiązanie AutoML umożliwia szybkie rozpoczęcie opracowywania modeli uczenia maszynowego na własnych zestawach danych. Jego podejście do pudełka szklanego generuje notesy z pełnym przepływem pracy uczenia maszynowego, który można klonowania, modyfikowania i ponownego uruchamiania.
- Zarządzanie cyklem życia modelu w wykazie aparatu Unity
- Samouczek: kompleksowe modele uczenia maszynowego w usłudze Azure Databricks
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
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.
- Zacznij od bibliotek domyślnych w informacjach o wersji środowiska Databricks Runtime i zgodności. Użyj środowiska Databricks Runtime na potrzeby uczenia maszynowego na potrzeby obciążeń uczenia maszynowego. Aby uzyskać pełną listę wstępnie zainstalowanych bibliotek, zobacz Databricks Runtime release notes versions and compatibility (Wersje i zgodność środowiska Databricks Runtime).
- Dostosuj środowisko przy użyciu bibliotek języka Python o zakresie notesu, które umożliwiają modyfikowanie notesu lub środowiska zadań za pomocą bibliotek z PyPI lub innych repozytoriów.
%pip install my_library
Polecenie magic instaluje wszystkie węzłymy_library
w aktualnie dołączonym klastrze, ale nie zakłóca innych obciążeń w udostępnionych klastrach. - Zainstaluj biblioteki inne niż Python jako biblioteki klastra zgodnie z potrzebami.
- Aby uzyskać więcej informacji, zobacz Biblioteki.
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:
- Szkolenie biblioteki scikit-learn i śledzenie za pomocą biblioteki MLflow: 10-minutowy samouczek: uczenie maszynowe w usłudze Databricks za pomocą biblioteki scikit-learn
- Trenowanie modeli uczenia głębokiego: uczenie głębokie
- Dostrajanie hiperparametryczne: Równoległe dostrajanie hiperparametrów funkcji Hyperopt
- Analiza grafów: Jak używać elementów GraphFrames w usłudze Azure Databricks
Ś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
Akademia Usługi Databricks oferuje kursy prowadzone samodzielnie i prowadzone przez instruktora w wielu tematach.
Usługa Databricks Labs udostępnia narzędzia do programowania w języku Python w usłudze Databricks, takie jak wtyczka pytest i wtyczka pylint.
Funkcje obsługujące współdziałanie między rozwiązaniem PySpark i biblioteką pandas obejmują następujące elementy:
Narzędzia do łączności języka Python i bazy danych SQL obejmują:
- Łącznik SQL usługi Databricks dla języka Python umożliwia uruchamianie poleceń SQL w zasobach usługi Azure Databricks przy użyciu kodu języka Python.
- Pyodbc umożliwia nawiązanie połączenia z lokalnego kodu w języku Python za pośrednictwem ODBC z danymi przechowywanymi w lakehouse usługi Databricks.
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