Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie opisano sposób budowania, wdrażania i uruchamiania pliku wheel języka Python przy użyciu Databricks Asset Bundles. Zobacz Czym są pakiety zasobów Databricks?.
Przykładowa konfiguracja, która kompiluje plik JAR i przekazuje go do Unity Catalog, zobacz pakiet, który przekazuje plik JAR do Unity Catalog.
Requirements
- Zainstalowano interfejs wiersza polecenia usługi Databricks w wersji 0.218.0 lub nowszej i skonfigurowano uwierzytelnianie. 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. Aby skonfigurować uwierzytelnianie, zobacz Konfigurowanie dostępu do obszaru roboczego. - Program uv jest wymagany do uruchamiania testów i instalowania zależności dla tego projektu ze środowiska IDE.
- Zdalny obszar roboczy musi mieć włączone pliki obszaru roboczego. Zobacz Czym są pliki obszaru roboczego?.
- Istniejący katalog. Aby utworzyć wykaz, zobacz Tworzenie wykazów.
Tworzenie pakietu przy użyciu szablonu
Utwórz pakiet przy użyciu domyślnego szablonu pakietu zasobów usługi Databricks dla języka Python. Ten pakiet składa się z plików do kompilacji w pliku wheel języka Python oraz definicji zadania usługi Azure Databricks w celu skompilowania tego pliku wheel języka Python. Następnie należy zweryfikować, wdrożyć i utworzyć plik wheel języka Python z wdrożonych plików, korzystając z zadania tworzenia koła języka Python w obszarze roboczym usługi Azure Databricks.
Jeśli chcesz utworzyć pakiet od podstaw, zobacz Ręczne tworzenie pakietu.
Krok 1. Tworzenie pakietu
Pakiet zawiera zasoby, 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 Databricks CLI, aby uruchomić polecenie
bundle init.databricks bundle initW polu
Template to usepozostaw domyślną wartośćdefault-python, przyciskającEnter.W polu
Unique name for this projectpozostaw wartośćmy_projectdomyślną , lub wpisz inną wartość, a następnie naciśnijEnter. Określa nazwę katalogu głównego dla tego pakietu. Ten katalog nadrzędny jest tworzony w bieżącym katalogu roboczym.W
Include a job that runs a notebookwybierznoi naciśnijEnter. Instrukcja ta powoduje, że interfejs wiersza poleceń Databricks nie dodaje przykładowego notesu do pakietu.W
Include an ETL pipelinewybierznoi naciśnijEnter. Powoduje to, że interfejs wiersza polecenia usługi Databricks nie definiuje przykładowego potoku w pakiecie.W polu
Include a stub (sample) Python packagepozostaw domyślną wartośćyes, przyciskającEnter. To instruuje interfejs wiersza polecenia Databricks, aby dodać przykładowe pliki pakietu wheel języka Python i powiązane instrukcje kompilacji do pakietu.W
Use serverlesswybierzyesi naciśnijEnter. Spowoduje to, że interfejs wiersza polecenia usługi Databricks skonfiguruje pakiet do uruchamiania na bezserwerowych obliczeniach.W polu
Default catalog for any tables created by this project [hive_metastore]wprowadź nazwę istniejącego katalogu Unity Catalog.W polu
Use a personal schema for each user working on this project.wybierz pozycjęyes.
Krok 2. 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. Pliki o szczególnym znaczeniu obejmują następujące elementy:
-
databricks.yml: Ten plik określa nazwę pakietu, zawiera odwołania do plików pakietu, określawhlustawienia kompilacji, definiuje zmienne katalogu i schematu oraz określa ustawienia docelowych obszarów roboczych. -
resources/sample_job.job.yml: ten plik określa ustawienia zadania koła języka Python. Aby uzyskać informacje o ustawieniach zadania, zobacz job. -
src/: Ten folder zawiera pliki używane przez zadanie wheel języka Python do kompilowania pliku wheel języka Python. -
tests/: ten folder zawiera przykładowe testy jednostkowe. -
README.md: Ten plik zawiera dodatkowe informacje na temat rozpoczynania pracy i korzystania z tego szablonu pakietu.
Note
Jeśli chcesz zainstalować plik wheel języka Python w klastrze korzystającym z wersji Databricks Runtime 12.2 LTS lub starszej, musisz dodać następujące mapowanie najwyższego poziomu do pliku databricks.yml:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
Krok 3. Weryfikowanie konfiguracji pakietu
Teraz sprawdź, czy konfiguracja pakietu jest prawidłowa.
Z katalogu głównego użyj Databricks CLI, aby uruchomić polecenie
bundle validate.databricks bundle validateJeś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.
Krok 4. Wdrażanie pakietu w zdalnym obszarze roboczym
Następnie wdróż pakiet w zdalnym obszarze roboczym usługi Azure Databricks. Spowoduje to skompilowanie pliku wheel języka Python. Sprawdź, czy zadanie usługi Azure Databricks zostało utworzone w obszarze roboczym.
W katalogu głównym pakietu użyj CLI Databricks do uruchomienia polecenia
bundle deploy.databricks bundle deploy --target devUpewnij się, że lokalnie zbudowany plik wheel dla Python został wdrożony:
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Obszar roboczy.
- Kliknij następujący folder: Obszar roboczy > Użytkownicy >
<your-username>> .bundle ><project-name>> deweloperskie artefakty > .internal >><whl-file-name>.whl.
Plik wheel języka Python powinien znajdować się w tym folderze.
Sprawdź, czy zadanie zostało utworzone:
- Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Zadania i potoki.
- Opcjonalnie wybierz filtry Zadania i Należące do mnie .
- Kliknij [dev
<your-username>]sample_job. - Kliknij kartę Zadania. Powinna być jedna python_wheel_task.
Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 3 do 4, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, a następnie ponownie wdróż projekt.
Krok 5. Uruchamianie wdrożonego projektu
Teraz zainicjuj uruchomienie zadania Azure Databricks w swoim obszarze roboczym.
Z katalogu głównego użyj Databricks CLI, aby uruchomić polecenie
bundle run.databricks bundle run --target dev sample_jobSkopiuj wartość
Run URLwyświetlaną w terminalu i wklej tę wartość w przeglądarce internetowej, aby otworzyć obszar roboczy usługi Azure Databricks.W przestrzeni roboczej usługi Azure Databricks, po pomyślnym zakończeniu zadania i pojawieniu się zielonego paska narzędzi, kliknij zadanie, aby zobaczyć wyniki.
Buduj plik whl przy użyciu Poetry lub setuptools
W przypadku użycia szablonu default-python z databricks bundle init, tworzony jest pakiet, który pokazuje, jak skonfigurować pakiet kompilujący koło Python przy użyciu uv oraz pyproject.toml. Możesz jednak użyć poezji lub setuptools zamiast tego utworzyć koło.
Zainstaluj Poetry lub setuptools
Zainstaluj Poetry lub
setuptools:Poetry
-
Zainstaluj program Poezja w wersji 1.6 lub nowszej, jeśli nie został jeszcze zainstalowany. Aby sprawdzić zainstalowaną wersję poezji, uruchom polecenie
poetry -Vlubpoetry --version. - Upewnij się, że masz zainstalowany język Python w wersji 3.10 lub nowszej. Aby sprawdzić wersję języka Python, uruchom polecenie
python -Vlubpython --version.
Setuptools
Zainstaluj pakiety
wheelisetuptools, jeśli nie zostały jeszcze zainstalowane, uruchamiając następujące polecenie:pip3 install --upgrade wheel setuptools-
Zainstaluj program Poezja w wersji 1.6 lub nowszej, jeśli nie został jeszcze zainstalowany. Aby sprawdzić zainstalowaną wersję poezji, uruchom polecenie
Jeśli zamierzasz przechowywać ten pakiet za pomocą dostawcy Git, dodaj
.gitignoreplik w katalogu głównym projektu i dodaj następujące wpisy do tego pliku:Poetry
.databricks distSetuptools
.databricks build dist src/my_package/my_package.egg-info
Dodawanie plików kompilacji
W katalogu głównym pakietu utwórz następujące foldery i pliki, w zależności od tego, czy używasz Poetry czy
setuptoolsdo tworzenia plików wheel języka Python.Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.tomlSetuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.pyDodaj następujący kod do pliku
pyproject.tomllubsetup.py.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-namenazwą głównego kontaktu w organizacji. - Zastąp
my-author-name>@<my-organizationgłównym adresem e-mail kontaktowym organizacji. - Zastąp
<my-package-description>opisem wyświetlania dla pliku wheel w języku 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
https://<my-url>ciąg adresem URL organizacji. - Zastąp
<my-author-name>nazwą głównego kontaktu w organizacji. - Zastąp
<my-author-name>@<my-organization>głównym adresem e-mail kontaktowym organizacji. - Zastąp
<my-package-description>opisem wyświetlania dla pliku wheel w języku Python.
- Zastąp
Dodaj konfigurację pakietu artefaktów
Dodaj konfigurację mapowania
artifactsdo swojego projektudatabricks.yml, aby wygenerować artefaktwhl.Poetry
Ta konfiguracja uruchamia polecenie
poetry buildi wskazuje, że ścieżka do plikupyproject.tomlznajduje się w tym samym katalogu co plikdatabricks.yml.Note
Jeśli masz już utworzony plik wheel języka Python i chcesz go wdrożyć, zmodyfikuj następujący plik konfiguracji pakietu, pomijając
artifactsmapowanie. CLI Databricks zakłada, że plik wheel Pythona jest już zbudowany i automatycznie wdroży pliki określone we wpisach tablicylibrarieswhl.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>Setuptools
Ta konfiguracja uruchamia polecenie
setuptoolsi wskazuje, że ścieżka do plikusetup.pyznajduje się w tym samym katalogu co plikdatabricks.yml.bundle: name: my-wheel-bundle artifacts: default: type: whl build: python3 setup.py bdist wheel 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>