Tworzenie pliku wheel języka Python przy użyciu pakietów zasobów usługi Databricks
W tym artykule opisano sposób kompilowania, wdrażania i uruchamiania pliku wheel języka Python w ramach projektu pakietu zasobów usługi Databricks. Zobacz Co to są pakiety zasobów usługi Databricks?
Wymagania
- Interfejs wiersza polecenia usługi Databricks w wersji 0.218.0 lub nowszej. Aby sprawdzić zainstalowaną wersję interfejsu wiersza polecenia usługi Databricks, uruchom polecenie
databricks -v
. Aby zainstalować interfejs wiersza polecenia usługi Databricks, zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks. - Zdalny obszar roboczy musi mieć włączone pliki obszaru roboczego. Zobacz Co to są pliki obszaru roboczego?.
Decyzja: Ręczne tworzenie pakietu lub przy użyciu szablonu
Zdecyduj, czy chcesz utworzyć pakiet startowy przy użyciu szablonu, czy ręcznie utworzyć pakiet. Tworzenie pakietu przy użyciu szablonu jest szybsze i łatwiejsze, ale pakiet może generować zawartość, która nie jest potrzebna, a ustawienia domyślne pakietu muszą być dodatkowo dostosowane dla rzeczywistych aplikacji. Ręczne tworzenie pakietu zapewnia pełną kontrolę nad ustawieniami pakietu, ale musisz znać sposób działania pakietów, ponieważ wykonujesz całą pracę od początku. Wybierz jeden z następujących zestawów kroków:
Tworzenie pakietu przy użyciu szablonu
W tych krokach utworzysz pakiet przy użyciu domyślnego szablonu pakietu usługi Azure Databricks dla języka Python. Te kroki prowadzą do utworzenia pakietu składającego się z plików w celu skompilowania w pliku wheel języka Python oraz definicji zadania usługi Azure Databricks w celu skompilowania tego pliku koła języka Python. Następnie należy zweryfikować, wdrożyć i skompilować wdrożone pliki w pliku wheel języka Python z zadania koła języka Python w obszarze roboczym usługi Azure Databricks.
Domyślny szablon pakietu usługi Azure Databricks dla języka Python używa narzędzi setuptools do kompilowania pliku wheel języka Python. Jeśli zamiast tego chcesz użyć poezji do skompilowania pliku wheel języka Python, postępuj zgodnie z instrukcjami w dalszej części tej sekcji, aby zamienić setuptools
implementację implementacji poezji.
Krok 1. Konfigurowanie uwierzytelniania
W tym kroku skonfigurujesz uwierzytelnianie między interfejsem wiersza polecenia usługi Databricks na komputerze deweloperskim a obszarem roboczym usługi Azure Databricks. W tym artykule założono, że chcesz użyć uwierzytelniania użytkownika do komputera (U2M) OAuth i odpowiedniego profilu konfiguracji usługi Azure Databricks o nazwie DEFAULT
na potrzeby uwierzytelniania.
Uwaga
Uwierzytelnianie U2M jest odpowiednie do wypróbowanie tych kroków w czasie rzeczywistym. W przypadku w pełni zautomatyzowanych przepływów pracy usługa Databricks zaleca zamiast tego użycie uwierzytelniania maszynowego do maszyny OAuth (M2M). Zobacz instrukcje dotyczące konfigurowania uwierzytelniania M2M w temacie Uwierzytelnianie.
Użyj interfejsu wiersza polecenia usługi Databricks, aby lokalnie zainicjować zarządzanie tokenami OAuth, uruchamiając następujące polecenie dla każdego docelowego obszaru roboczego.
W poniższym poleceniu zastąp ciąg
<workspace-url>
adresem URL usługi Azure Databricks na obszar roboczy, na przykładhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Interfejs wiersza polecenia usługi Databricks monituje o zapisanie informacji wprowadzonych jako profil konfiguracji usługi Azure Databricks. Naciśnij
Enter
, aby zaakceptować sugerowaną nazwę profilu lub wprowadź nazwę nowego lub istniejącego profilu. Każdy istniejący profil o tej samej nazwie zostanie zastąpiony wprowadzonymi informacjami. Profile umożliwiają szybkie przełączanie kontekstu uwierzytelniania między wieloma obszarami roboczymi.Aby uzyskać listę wszystkich istniejących profilów, w osobnym terminalu lub wierszu polecenia użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić polecenie
databricks auth profiles
. Aby wyświetlić istniejące ustawienia określonego profilu, uruchom poleceniedatabricks auth env --profile <profile-name>
.W przeglądarce internetowej wykonaj instrukcje na ekranie, aby zalogować się do obszaru roboczego usługi Azure Databricks.
Aby wyświetlić bieżącą wartość tokenu OAuth profilu i zbliżający się znacznik czasu wygaśnięcia tokenu, uruchom jedno z następujących poleceń:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Jeśli masz wiele profilów o tej samej
--host
wartości, może być konieczne określenie--host
opcji i-p
, aby ułatwić interfejsowi wiersza polecenia usługi Databricks znalezienie prawidłowych pasujących informacji o tokenie OAuth.
Krok 2. Tworzenie pakietu
Pakiet zawiera artefakty, które chcesz wdrożyć, oraz ustawienia dla przepływów pracy, które chcesz uruchomić.
Użyj terminalu lub wiersza polecenia, aby przełączyć się do katalogu na lokalnej maszynie deweloperskiej, która będzie zawierać wygenerowany pakiet szablonu.
Użyj wersji interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle init
polecenie:databricks bundle init
W polu
Template to use
pozostaw wartośćdefault-python
domyślną ciągu , naciskającEnter
.W polu
Unique name for this project
pozostaw wartośćmy_project
domyślną , lub wpisz inną wartość, a następnie naciśnijEnter
. Określa nazwę katalogu głównego dla tego pakietu. Ten katalog główny jest tworzony w bieżącym katalogu roboczym.W polu
Include a stub (sample) notebook
wybierz ino
naciśnijEnter
. Spowoduje to, że interfejs wiersza polecenia usługi Databricks nie doda do pakietu przykładowego notesu.W polu
Include a stub (sample) DLT pipeline
wybierz ino
naciśnijEnter
. Spowoduje to, że interfejs wiersza polecenia usługi Databricks nie zdefiniuje przykładowego potoku delta live tables w pakiecie.W polu
Include a stub (sample) Python package
pozostaw wartośćyes
domyślną ciągu , naciskającEnter
. Spowoduje to poinstruowanie interfejsu wiersza polecenia usługi Databricks o dodanie przykładowych plików pakietu wheel języka Python i powiązanych instrukcji kompilacji do pakietu.
Krok 3. Eksplorowanie pakietu
Aby wyświetlić pliki wygenerowane przez szablon, przejdź do katalogu głównego nowo utworzonego pakietu i otwórz ten katalog przy użyciu preferowanego środowiska IDE, na przykład programu Visual Studio Code. Pliki o szczególnym znaczeniu obejmują następujące elementy:
databricks.yml
: Ten plik określa nazwę programową pakietu, zawiera odwołanie do definicji zadania koła języka Python i określa ustawienia dotyczące docelowego obszaru roboczego.resources/<project-name>_job.yml
: ten plik określa ustawienia zadania koła języka Python.src/<project-name>
: Ten katalog zawiera pliki używane przez zadanie wheel języka Python do kompilowania pliku wheel języka Python.
Uwaga
Jeśli chcesz zainstalować plik wheel języka Python w klastrze docelowym z zainstalowanym środowiskiem Databricks Runtime 12.2 LTS lub nowszym, musisz dodać następujące mapowanie najwyższego databricks.yml
poziomu do pliku:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
To mapowanie powoduje, że interfejs wiersza polecenia usługi Databricks wykonuje następujące czynności:
- Wdróż kopię pliku wheel języka Python w tle. Ta ścieżka wdrożenia to zazwyczaj
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Utwórz notes w tle zawierający instrukcje dotyczące instalowania poprzedniego wdrożonego pliku wheel języka Python w klastrze docelowym. Ścieżka tego notesu jest zwykle
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
następująca: . - Po uruchomieniu zadania zawierającego zadanie koła języka Python, które odwołuje się do poprzedniego pliku wheel języka Python, zadanie jest tworzone w tle, które uruchamia poprzedni notes.
Nie trzeba określać tego mapowania dla klastrów docelowych z zainstalowanym środowiskiem Databricks Runtime 13.1 lub nowszym, ponieważ instalacje kół języka Python z systemu plików obszaru roboczego usługi Azure Databricks zostaną automatycznie zainstalowane w tych klastrach docelowych.
Krok 4. Aktualizowanie pakietu projektu w celu używania poezji
Domyślnie szablon pakietu określa kompilowanie pliku wheel języka Python wraz setuptools
z plikami setup.py
i requirements-dev.txt
. Jeśli chcesz zachować te wartości domyślne, przejdź do kroku 5. Zweryfikuj plik konfiguracji pakietu projektu.
Aby zaktualizować pakiet projektu w celu używania poezji zamiast setuptools
programu , upewnij się, że lokalna maszyna deweloperna spełnia następujące wymagania:
- Poezja w wersji 1.6 lub nowszej. Aby sprawdzić zainstalowaną wersję poezji, uruchom polecenie
poetry -V
lubpoetry --version
. Aby zainstalować lub uaktualnić poezję, zobacz Instalacja. - Środowisko Python w wersji 3.10 lub nowszej. Aby sprawdzić wersję języka Python, uruchom polecenie
python -V
lubpython --version
. - Interfejs wiersza polecenia usługi Databricks w wersji 0.209.0 lub nowszej. W wersji interfejsu wiersza polecenia usługi Databricks uruchom polecenie
databricks -v
lubdatabricks --version
. Zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks.
Wprowadź następujące zmiany w pakiecie projektu:
Z katalogu głównego pakietu poinstruuj
poetry
, aby zainicjować kompilacje wheel języka Python dla poezji, uruchamiając następujące polecenie:poetry init
Poezja wyświetla kilka monitów o ukończenie. W przypadku kompilacji wheel języka Python odpowiedz na następujące monity, aby dopasować powiązane ustawienia domyślne w pakiecie projektu:
- W polu
Package name
wpisz nazwę folderu podrzędnego w obszarze/src
, a następnie naciśnijEnter
. Powinna to być również wartość pakietuname
zdefiniowana w pliku pakietusetup.py
. - W polu
Version
wpisz0.0.1
i naciśnijEnter
. Jest to zgodne z numerem wersji zdefiniowanym w pliku pakietusrc/<project-name>/__init__.py
. - W polu
Description
wpisz (zastępując<project-name>
ciąg nazwą projektu) i naciśnijEnter
wheel file based on <project-name>/src
. Jest to zgodne z wartościądescription
zdefiniowaną w pliku szablonusetup.py
. - W obszarze
Author
naciśnijEnter
. Ta wartość domyślna jest zgodna z autorem zdefiniowanym w pliku szablonusetup.py
. - W obszarze
License
naciśnijEnter
. Brak licencji zdefiniowanej w szablonie. - W polu
Compatible Python versions
wprowadź wersję języka Python zgodną z wersją docelową klastrów usługi Azure Databricks (na przykład^3.10
), a następnie naciśnijEnter
. - W polu
Would you like to define your main dependencies interactively?
Wpiszno
i naciśnijEnter
. Później zdefiniujesz zależności. - W polu
Would you like to define your development dependencies interactively?
Wpiszno
i naciśnijEnter
. Później zdefiniujesz zależności. - W przypadku naciśnięcia
Do you confirm generation?
Enter
.
- W polu
Po zakończeniu monitów poezja dodaje
pyproject.toml
plik do projektu pakietu. Aby uzyskać informacje opyproject.toml
pliku, zobacz plik pyproject.toml.Z katalogu głównego pakietu poinstruuj
poetry
, aby odczytaćpyproject.toml
plik, rozpoznać zależności i zainstalować je, utworzyćpoetry.lock
plik, aby zablokować zależności, a na koniec utworzyć środowisko wirtualne. Aby to zrobić, uruchom następujące polecenie:poetry install
Dodaj następującą sekcję na końcu
pyproject.toml
pliku, zastępując<project-name>
ciąg nazwą katalogu, który zawierasrc/<project-name>/main.py
plik (na przykładmy_project
):[tool.poetry.scripts] main = "<project-name>.main:main"
Sekcja określa punkt wejścia koła języka Python dla zadania koła języka Python.
Dodaj następujące mapowanie na najwyższym poziomie pliku pakietu
databricks.yml
:artifacts: default: type: whl build: poetry build path: .
To mapowanie instruuje interfejs wiersza polecenia usługi Databricks w celu utworzenia pliku wheel języka Python przy użyciu poezji.
setup.py
Usuń pliki irequirements-dev.txt
z pakietu, ponieważ poezja ich nie wymaga.
Krok 5. Weryfikowanie pliku konfiguracji pakietu projektu
W tym kroku sprawdzisz, czy konfiguracja pakietu jest prawidłowa.
Z katalogu głównego użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle validate
polecenie w następujący sposób:databricks bundle validate
Jeśli zostanie zwrócone podsumowanie konfiguracji pakietu, walidacja zakończyła się pomyślnie. Jeśli zostaną zwrócone jakiekolwiek błędy, napraw błędy, a następnie powtórz ten krok.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, należy powtórzyć ten krok, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa.
Krok 6. Skompiluj plik wheel języka Python i wdróż projekt lokalny w zdalnym obszarze roboczym
W tym kroku utworzysz plik wheel języka Python, wdrożysz skompilowany plik wheel języka Python w zdalnym obszarze roboczym usługi Azure Databricks i utworzysz zadanie usługi Azure Databricks w obszarze roboczym.
Jeśli używasz polecenia
setuptools
, zainstalujwheel
pakiety isetuptools
, jeśli jeszcze tego nie zrobiono, uruchamiając następujące polecenie:pip3 install --upgrade wheel setuptools
W terminalu programu Visual Studio Code użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle deploy
polecenie w następujący sposób:databricks bundle deploy -t dev
Jeśli chcesz sprawdzić, czy lokalnie utworzony plik wheel języka Python został wdrożony:
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Obszar roboczy.
- Kliknij następujący folder: Użytkownicy >>
<your-username>
obszaru roboczego > .bundle >><project-name>
artefakty deweloperskie > > .internal .><random-guid>
Plik wheel języka Python powinien znajdować się w tym folderze.
Jeśli chcesz sprawdzić, czy zadanie zostało utworzone:
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Przepływy pracy.
- Na karcie Zadania kliknij pozycję [dev
<your-username>
]<project-name>
_job. - Kliknij kartę Zadania .
Powinno istnieć jedno zadanie: main_task.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 5 do 6, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, a następnie ponownie wdrożyć projekt.
Krok 7. Uruchamianie wdrożonego projektu
W tym kroku uruchomisz zadanie usługi Azure Databricks w obszarze roboczym.
Z katalogu głównego użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić
bundle run
polecenie w następujący sposób, zastępując<project-name>
ciąg nazwą projektu z kroku 2:databricks bundle run -t dev <project-name>_job
Skopiuj wartość
Run URL
wyświetlaną w terminalu i wklej tę wartość w przeglądarce internetowej, aby otworzyć obszar roboczy usługi Azure Databricks.W obszarze roboczym usługi Azure Databricks po pomyślnym zakończeniu zadania i wyświetl zielony pasek tytułu kliknij zadanie main_task , aby wyświetlić wyniki.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 5 do 7, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, ponownie wdrożyć projekt i uruchomić ponownie wdrożony projekt.
Osiągnięto koniec kroków tworzenia pakietu przy użyciu szablonu.
Ręczne tworzenie pakietu
W tych krokach utworzysz pakiet od początku ręcznie. Te kroki prowadzą do utworzenia pakietu składającego się z plików w celu skompilowania w pliku wheel języka Python oraz definicji zadania usługi Databricks w celu skompilowania tego pliku koła języka Python. Następnie zweryfikuj, wdróż i skompilujesz wdrożone pliki w pliku wheel języka Python z zadania koła języka Python w obszarze roboczym usługi Databricks.
Te kroki obejmują dodawanie zawartości do pliku YAML. Opcjonalnie możesz chcieć użyć zintegrowanego środowiska projektowego (IDE), które udostępnia automatyczne sugestie i akcje schematu podczas pracy z plikami YAML. W poniższych krokach użyj programu Visual Studio Code z rozszerzeniem YAML zainstalowanym z witryny Visual Studio Code Marketplace.
W poniższych krokach przyjęto założenie, że wiesz już:
- Jak tworzyć, kompilować i pracować z plikami wheel języka Python za pomocą biblioteki Poezja lub
setuptools
. Aby zapoznać się z poezją, zobacz Podstawowe użycie. Aby uzyskać informacje,setuptools
zobacz Podręcznik użytkownika tworzenia pakietów w języku Python. - Jak używać plików wheel języka Python w ramach zadania usługi Azure Databricks. Zobacz Używanie pliku wheel języka Python w zadaniu usługi Azure Databricks.
Postępuj zgodnie z tymi instrukcjami, aby utworzyć przykładowy pakiet, który kompiluje plik wheel języka Python za pomocą biblioteki Poezja lub setuptools
, wdraża plik wheel języka Python, a następnie uruchamia wdrożony plik wheel języka Python.
Jeśli masz już utworzony plik wheel języka Python i chcesz go wdrożyć i uruchomić, przejdź dalej, aby określić ustawienia koła języka Python w pliku konfiguracji pakietu w kroku 3: Utwórz plik konfiguracji pakietu.
Krok 1. Konfigurowanie uwierzytelniania
W tym kroku skonfigurujesz uwierzytelnianie między interfejsem wiersza polecenia usługi Databricks na komputerze deweloperskim a obszarem roboczym usługi Azure Databricks. W tym artykule założono, że chcesz użyć uwierzytelniania użytkownika do komputera (U2M) OAuth i odpowiedniego profilu konfiguracji usługi Azure Databricks o nazwie DEFAULT
na potrzeby uwierzytelniania.
Uwaga
Uwierzytelnianie U2M jest odpowiednie do wypróbowanie tych kroków w czasie rzeczywistym. W przypadku w pełni zautomatyzowanych przepływów pracy usługa Databricks zaleca zamiast tego użycie uwierzytelniania maszynowego do maszyny OAuth (M2M). Zobacz instrukcje dotyczące konfigurowania uwierzytelniania M2M w temacie Uwierzytelnianie.
Użyj interfejsu wiersza polecenia usługi Databricks, aby lokalnie zainicjować zarządzanie tokenami OAuth, uruchamiając następujące polecenie dla każdego docelowego obszaru roboczego.
W poniższym poleceniu zastąp ciąg
<workspace-url>
adresem URL usługi Azure Databricks na obszar roboczy, na przykładhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Interfejs wiersza polecenia usługi Databricks monituje o zapisanie informacji wprowadzonych jako profil konfiguracji usługi Azure Databricks. Naciśnij
Enter
, aby zaakceptować sugerowaną nazwę profilu lub wprowadź nazwę nowego lub istniejącego profilu. Każdy istniejący profil o tej samej nazwie zostanie zastąpiony wprowadzonymi informacjami. Profile umożliwiają szybkie przełączanie kontekstu uwierzytelniania między wieloma obszarami roboczymi.Aby uzyskać listę wszystkich istniejących profilów, w osobnym terminalu lub wierszu polecenia użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić polecenie
databricks auth profiles
. Aby wyświetlić istniejące ustawienia określonego profilu, uruchom poleceniedatabricks auth env --profile <profile-name>
.W przeglądarce internetowej wykonaj instrukcje na ekranie, aby zalogować się do obszaru roboczego usługi Azure Databricks.
Aby wyświetlić bieżącą wartość tokenu OAuth profilu i zbliżający się znacznik czasu wygaśnięcia tokenu, uruchom jedno z następujących poleceń:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Jeśli masz wiele profilów o tej samej
--host
wartości, może być konieczne określenie--host
opcji i-p
, aby ułatwić interfejsowi wiersza polecenia usługi Databricks znalezienie prawidłowych pasujących informacji o tokenie OAuth.
Krok 2. Tworzenie pakietu
Pakiet zawiera artefakty, które chcesz wdrożyć, oraz ustawienia dla przepływów pracy, które chcesz uruchomić.
W katalogu głównym pakietu utwórz następujące foldery i pliki w zależności od tego, czy używasz poezji, czy
setuptools
do tworzenia plików wheel języka Python:Poezja
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.toml
Narzędzia instalacyjne
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.py
Pozostaw plik
__init__.py
pusty.Dodaj następujący kod do
main.py
pliku, a następnie zapisz plik:from my_package.my_module import * def main(): first = 200 second = 400 print(f"{first} + {second} = {add_two_numbers(first, second)}") print(f"{second} - {first} = {subtract_two_numbers(second, first)}") print(f"{first} * {second} = {multiply_two_numbers(first, second)}") print(f"{second} / {first} = {divide_two_numbers(second, first)}") if __name__ == "__main__": main()
Dodaj następujący kod do
my_module.py
pliku, a następnie zapisz plik:def add_two_numbers(a, b): return a + b def subtract_two_numbers(a, b): return a - b def multiply_two_numbers(a, b): return a * b def divide_two_numbers(a, b): return a / b
Dodaj następujący kod do
pyproject.toml
pliku lubsetup.py
, a następnie zapisz plik:Pyproject.toml
[tool.poetry] name = "my_package" version = "0.0.1" description = "<my-package-description>" authors = ["my-author-name <my-author-name>@<my-organization>"] [tool.poetry.dependencies] python = "^3.10" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.poetry.scripts] main = "my_package.main:main"
- Zastąp
my-author-name
element nazwą podstawowego kontaktu organizacji. - Zastąp
my-author-name>@<my-organization
element podstawowym adresem e-mail organizacji. - Zastąp
<my-package-description>
ciąg opisem wyświetlania pliku wheel języka Python.
Setup.py
from setuptools import setup, find_packages import src setup( name = "my_package", version = "0.0.1", author = "<my-author-name>", url = "https://<my-url>", author_email = "<my-author-name>@<my-organization>", description = "<my-package-description>", packages=find_packages(where='./src'), package_dir={'': 'src'}, entry_points={ "packages": [ "main=my_package.main:main" ] }, install_requires=[ "setuptools" ] )
- Zastąp ciąg
https://<my-url>
adresem URL organizacji. - Zastąp
<my-author-name>
element nazwą podstawowego kontaktu organizacji. - Zastąp
<my-author-name>@<my-organization>
element podstawowym adresem e-mail organizacji. - Zastąp
<my-package-description>
ciąg opisem wyświetlania pliku wheel języka Python.
- Zastąp
Krok 3. Tworzenie pliku konfiguracji pakietu
Plik konfiguracji pakietu opisuje artefakty, które chcesz wdrożyć, oraz przepływy pracy, które chcesz uruchomić.
W katalogu głównym pakietu dodaj plik konfiguracji pakietu o nazwie
databricks.yml
. Dodaj następujący kod do tego pliku:Poezja
Uwaga
Jeśli masz już utworzony plik wheel języka Python i chcesz go wdrożyć, zmodyfikuj następujący plik konfiguracji pakietu, pomijając
artifacts
mapowanie. Interfejs wiersza polecenia usługi Databricks zakłada, że plik wheel języka Python jest już skompilowany i automatycznie wdroży pliki określone wlibraries
wpisach tablicywhl
.bundle: name: my-wheel-bundle artifacts: default: type: whl build: poetry build path: . resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>
Narzędzia instalacyjne
bundle: name: my-wheel-bundle resources: jobs: wheel-job: name: wheel-job tasks: - task_key: wheel-task new_cluster: spark_version: 13.3.x-scala2.12 node_type_id: Standard_DS3_v2 data_security_mode: USER_ISOLATION num_workers: 1 python_wheel_task: entry_point: main package_name: my_package libraries: - whl: ./dist/*.whl targets: dev: workspace: host: <workspace-url>
Zastąp
<workspace-url>
ciąg adresem URL obszaru roboczego, na przykładhttps://adb-1234567890123456.7.azuredatabricks.net
.Mapowanie
artifacts
jest wymagane do kompilowania plików wheel języka Python z poezją i jest opcjonalne do kompilowania plików wheel języka Python za pomocą poleceniasetuptools
. Mapowanieartifacts
zawiera co najmniej jedną definicję artefaktu z następującymi mapowaniami:- Mapowanie
type
musi być obecne i ustawione, abywhl
określić, że plik wheel języka Python ma zostać skompilowany. W przypadkusetuptools
parametruwhl
jest wartością domyślną, jeśli nie określono definicji artefaktów. - Mapowanie
path
wskazuje ścieżkę dopyproject.toml
pliku poezji lubsetup.py
do pliku .setuptools
Ta ścieżka jest względna względemdatabricks.yml
pliku. W przypadkusetuptools
programu ta ścieżka jest.
domyślnie (ten sam katalog codatabricks.yml
plik). - Mapowanie
build
wskazuje wszystkie niestandardowe polecenia kompilacji do uruchomienia w celu skompilowania pliku wheel języka Python. W przypadkusetuptools
programu to polecenie jestpython3 setup.py bdist wheel
domyślnie. - Mapowanie
files
składa się z co najmniej jednegosource
mapowania, które określa wszelkie dodatkowe pliki do uwzględnienia w kompilacji koła języka Python. Wartość domyślna to nie.
Uwaga
Jeśli chcesz zainstalować plik wheel języka Python w klastrze docelowym z zainstalowanym środowiskiem Databricks Runtime 12.2 LTS lub nowszym, musisz dodać następujące mapowanie najwyższego
databricks.yml
poziomu do pliku:# Applies to jobs with python_wheel_task and that use # clusters with Databricks Runtime 13.0 or below installed. experimental: python_wheel_wrapper: true
To mapowanie powoduje, że interfejs wiersza polecenia usługi Databricks wykonuje następujące czynności:
- Wdraża kopię pliku wheel języka Python w tle. Ta ścieżka wdrożenia to zazwyczaj
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Tworzy notes w tle zawierający instrukcje dotyczące instalowania poprzedniego wdrożonego pliku wheel języka Python w klastrze docelowym. Ścieżka tego notesu jest zwykle
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
następująca: . - Po uruchomieniu zadania zawierającego zadanie koła języka Python, które odwołuje się do poprzedniego pliku wheel języka Python, zadanie jest tworzone w tle, które uruchamia poprzedni notes.
Nie trzeba określać tego mapowania dla klastrów docelowych z zainstalowanym środowiskiem Databricks Runtime 13.1 lub nowszym, ponieważ instalacje kół języka Python z systemu plików obszaru roboczego usługi Azure Databricks zostaną automatycznie zainstalowane w tych klastrach docelowych.
- Mapowanie
Jeśli używasz poezji, wykonaj następujące czynności:
- Zainstaluj program Poezja w wersji 1.6 lub nowszej, jeśli nie został jeszcze zainstalowany. Aby sprawdzić zainstalowaną wersję poezji, uruchom polecenie
poetry -V
lubpoetry --version
. - Upewnij się, że masz zainstalowany język Python w wersji 3.10 lub nowszej. Aby sprawdzić wersję języka Python, uruchom polecenie
python -V
lubpython --version
. - Upewnij się, że masz interfejs wiersza polecenia usługi Databricks w wersji 0.209.0 lub nowszej. W wersji interfejsu wiersza polecenia usługi Databricks uruchom polecenie
databricks -v
lubdatabricks --version
. Zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks.
- Zainstaluj program Poezja w wersji 1.6 lub nowszej, jeśli nie został jeszcze zainstalowany. Aby sprawdzić zainstalowaną wersję poezji, uruchom polecenie
Jeśli używasz
setuptools
polecenia , zainstalujwheel
pakiety isetuptools
, jeśli nie zostały jeszcze zainstalowane, uruchamiając następujące polecenie:pip3 install --upgrade wheel setuptools
Jeśli zamierzasz przechowywać ten pakiet za pomocą dostawcy Git, dodaj
.gitignore
plik w katalogu głównym projektu i dodaj następujące wpisy do tego pliku:Poezja
.databricks dist
Narzędzia instalacyjne
.databricks build dist src/my_package/my_package.egg-info
Krok 4. Weryfikowanie pliku konfiguracji pakietu projektu
W tym kroku sprawdzisz, czy konfiguracja pakietu jest prawidłowa.
Z katalogu głównego zweryfikuj plik konfiguracji pakietu:
databricks bundle validate
Jeśli zostanie zwrócone podsumowanie konfiguracji pakietu, walidacja zakończyła się pomyślnie. Jeśli zostaną zwrócone jakiekolwiek błędy, napraw błędy, a następnie powtórz ten krok.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, należy powtórzyć ten krok, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa.
Krok 5. Skompiluj plik wheel języka Python i wdróż projekt lokalny w zdalnym obszarze roboczym
Skompiluj lokalnie plik wheel języka Python, wdróż skompilowany plik wheel języka Python w obszarze roboczym, wdróż notes w obszarze roboczym i utwórz zadanie w obszarze roboczym:
databricks bundle deploy -t dev
Krok 6. Uruchamianie wdrożonego projektu
Uruchom wdrożone zadanie, które używa wdrożonego notesu w celu wywołania wdrożonego pliku wheel języka Python:
databricks bundle run -t dev wheel-job
W danych wyjściowych skopiuj element
Run URL
i wklej go na pasku adresu przeglądarki internetowej.Na stronie Dane wyjściowe uruchomienia zadania są wyświetlane następujące wyniki:
200 + 400 = 600 400 - 200 = 200 200 * 400 = 80000 400 / 200 = 2.0
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 3 do 5, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, ponownie wdrożyć projekt i uruchomić ponownie wdrożony projekt.
Kompilowanie i instalowanie pliku wheel języka Python dla zadania
Aby utworzyć plik koła języka Python za pomocą biblioteki Poezja lub setuptools
, a następnie użyć tego pliku wheel języka Python w zadaniu, musisz dodać jedno lub dwa mapowania do databricks.yml
pliku.
Jeśli używasz poezji, musisz uwzględnić następujące artifacts
mapowanie w databricks.yml
pliku. To mapowanie uruchamia poetry build
polecenie i używa pyproject.toml
pliku, który znajduje się w tym samym katalogu co databricks.yml
plik:
artifacts:
default:
type: whl
build: poetry build
path: .
Uwaga
Mapowanie artifacts
jest opcjonalne dla elementu setuptools
. Domyślnie w interfejsie setuptools
wiersza polecenia usługi Databricks jest uruchamiane polecenie python3 setup.py bdist_wheel
i używa setup.py
pliku, który znajduje się w tym samym katalogu co databricks.yml
plik. Interfejs wiersza polecenia usługi Databricks zakłada, że uruchomiono już polecenie, takie jak pip3 install --upgrade wheel setuptools
instalowanie wheel
pakietów i setuptools
, jeśli nie zostały jeszcze zainstalowane.
Ponadto mapowanie zadania podrzędnego libraries
musi zawierać wartość określającą whl
ścieżkę do skompilowany plik wheel języka Python względem pliku konfiguracji, w którym jest zadeklarowany. W poniższym przykładzie pokazano to w zadaniu notesu (wielokropek wskazuje pominiętą zawartość dla zwięzłości):
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-job-notebook-task
notebook_task:
notebook_path: ./my_notebook.py
libraries:
- whl: ./dist/*.whl
new_cluster:
# ...
Kompilowanie i instalowanie pliku wheel języka Python dla potoku
Aby utworzyć plik koła języka Python za pomocą poezji lub setuptools
odwołać się do tego pliku wheel języka Python w potoku delta Live Tables, musisz dodać %pip install
mapowanie do databricks.yml
pliku, jeśli używasz poezji, a następnie dodać polecenie do notesu potoku w następujący sposób.
Jeśli używasz poezji, musisz uwzględnić następujące artifacts
mapowanie w databricks.yml
pliku. To mapowanie uruchamia poetry build
polecenie i używa pyproject.toml
pliku, który znajduje się w tym samym katalogu co databricks.yml
plik:
artifacts:
default:
type: whl
build: poetry build
path: .
Uwaga
Mapowanie artifacts
jest opcjonalne dla elementu setuptools
. Domyślnie w interfejsie setuptools
wiersza polecenia usługi Databricks jest uruchamiane polecenie python3 setup.py bdist_wheel
i używa setup.py
pliku, który znajduje się w tym samym katalogu co databricks.yml
plik. Interfejs wiersza polecenia usługi Databricks zakłada, że uruchomiono już polecenie, takie jak pip3 install --upgrade wheel setuptools
instalowanie wheel
pakietów i setuptools
, jeśli nie zostały jeszcze zainstalowane.
Ponadto powiązany notes potoku musi zawierać %pip install
polecenie, aby zainstalować skompilowany plik wheel języka Python. Zobacz Biblioteki języka Python.