Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Auf dieser Seite wird beschrieben, wie Sie eine Python-Raddatei mit Databricks Asset Bundles erstellen, bereitstellen und ausführen. Weitere Informationen finden Sie unter Was sind Databricks-Ressourcenpakete?.
Eine Beispielkonfiguration, die einen JAR erstellt und in den Unity-Katalog hochlädt, finden Sie unter Bundle, das eine JAR-Datei in unity Cataloghochlädt.
Requirements
- Databricks CLI Version 0.218.0 oder höher ist installiert, und die Authentifizierung ist konfiguriert. Führen Sie den Befehl
databricks -vaus, um zu überprüfen, welche Version der Databricks-CLI installiert ist. Informationen zum Installieren der Databricks CLI finden Sie unter Installieren oder Aktualisieren der Databricks CLI. Informationen zum Konfigurieren der Authentifizierung finden Sie unter Konfigurieren des Zugriffs auf Ihren Arbeitsbereich. - uv ist erforderlich, um Tests auszuführen und Abhängigkeiten für dieses Projekt aus einer IDE zu installieren.
- Für den Remotearbeitsbereich müssen Arbeitsbereichsdateien aktiviert sein. Weitere Informationen finden Sie unter Was sind Arbeitsbereichsdateien?.
- Ein vorhandener Katalog. Informationen zum Erstellen eines Katalogs finden Sie unter Erstellen von Katalogen.
Erstellen des Bündels mithilfe einer Vorlage
Erstellen Sie das Bündel mithilfe der Standardpaketvorlage "Databricks Asset Bundles" für Python. Dieses Bundle besteht aus Dateien zum Erstellen einer Python-Raddatei und der Definition eines Azure Databricks-Auftrags zum Erstellen dieser Python-Raddatei. Anschließend verwenden Sie den Python-Wheel-Auftrag in Ihrem Azure Databricks-Arbeitsbereich, um die in einer Python-Wheel-Datei bereitgestellten Dateien zu überprüfen, bereitzustellen und zu erstellen.
Wenn Sie ein Bundle von Grund auf neu erstellen möchten, lesen Sie den Abschnitt Manuelles Erstellen eines Bundles.
Schritt 1: Erstellen des Bündels
Ein Bündel enthält die Ressourcen, die Sie bereitstellen möchten, und die Einstellungen für die Workflows, die Sie ausführen möchten.
Verwenden Sie Ihr Terminal oder die Eingabeaufforderung, um zu einem Verzeichnis auf Ihrem lokalen Entwicklungscomputer zu wechseln, das das generierte Bundle der Vorlage enthält.
Verwenden Sie die Databricks CLI-Version, um den
bundle init-Befehl auszuführen:databricks bundle initBehalten Sie für
Template to useden Standardwert „default-python“ bei, indem Sie „Enter“ drücken.Lassen Sie für
Unique name for this project, den Standardwert vonmy_project, oder geben Sie einen anderen Wert ein, und drücken Sie dannEnter. Dadurch wird der Name des Stammverzeichnisses für dieses Bündel bestimmt. Dieses Stammverzeichnis wird in Ihrem aktuellen Arbeitsverzeichnis erstellt.Wählen Sie für
Include a job that runs a notebooknoaus, und drücken SieEnter. Dadurch wird die Databricks CLI angewiesen, Ihrem Bundle kein Beispielnotizbuch hinzuzufügen.Wählen Sie für
Include an ETL pipelinenoaus, und drücken SieEnter. Dadurch wird die Databricks CLI angewiesen, keine Beispielpipeline in Ihrem Bundle zu definieren.Behalten Sie für
Include a stub (sample) Python packageden Standardwert „yes“ bei, indem Sie „Enter“ drücken. Das weist die Databricks CLI an, Beispiel-Python-Radpaketdateien und zugehörige Buildanweisungen zu Ihrem Bundle hinzuzufügen.Wählen Sie für
Use serverlessyesaus, und drücken SieEnter. Dadurch wird die Databricks CLI angewiesen, Ihr Bundle so zu konfigurieren, dass es auf serverlosem Compute ausgeführt wird.Geben Sie für
Default catalog for any tables created by this project [hive_metastore]den Namen eines vorhandenen Unity-Katalogkatalogs ein.Wählen Sie
Use a personal schema for each user working on this project.füryesaus.
Schritt 2: Erkunden des Bundles
Um die von der Vorlage generierten Dateien anzuzeigen, wechseln Sie zum Stammverzeichnis Ihres neu erstellten Bundles, und öffnen Sie dieses Verzeichnis mit Ihrer bevorzugten IDE. Von besonderem Interesse sind die folgenden Dateien:
-
databricks.yml: Diese Datei gibt den Namen des Bundles an, enthält Verweise auf die Dateien des Bundles, gibtwhlBuildeinstellungen an, definiert Katalog- und Schemavariablen und gibt Einstellungen für Zielarbeitsbereiche an. -
resources/sample_job.job.yml: Diese Datei gibt die Einstellungen des Python-Wheel-Jobs an. Informationen zu den Job-Einstellungen finden Sie unter Job. -
src/: Dieser Ordner enthält die Dateien, die der Python-Wheel-Job zum Erstellen der Python-Wheel-Datei verwendet. -
tests/: Dieser Ordner enthält Beispiel-Einheitstests. -
README.md: Diese Datei enthält zusätzliche Informationen zu den ersten Schritten und zur Verwendung dieser Bündelvorlage.
Note
Wenn Sie die Python-Raddatei auf einem Cluster mit Databricks Runtime 12.2 LTS oder darunter installieren möchten, müssen Sie der databricks.yml Datei die folgende Zuordnung auf oberster Ebene hinzufügen:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
Schritt 3: Überprüfen der Bundlekonfiguration
Überprüfen Sie nun, ob die Bundlekonfiguration gültig ist.
Verwenden Sie im Stammverzeichnis die Databricks CLI, um den
bundle validateBefehl auszuführen:databricks bundle validateWenn eine Zusammenfassung der Bundlekonfiguration zurückgegeben wird, war die Prüfung erfolgreich. Wenn Fehler zurückgegeben werden, müssen Sie sie beheben und dann diesen Schritt wiederholen.
Schritt 4: Bereitstellen des Bundles im Remotearbeitsbereich
Stellen Sie als Nächstes das Bundle in Ihrem Azure Databricks-Remotearbeitsbereich bereit. Dadurch wird die Python-Wheel-Datei erstellt. Überprüfen Sie, ob ein Azure Databricks-Auftrag in Ihrem Arbeitsbereich erstellt wird.
Verwenden Sie im Stammverzeichnis des Bundles die Databricks CLI, um den
bundle deploy-Befehl auszuführen:databricks bundle deploy --target devVergewissern Sie sich, dass die lokal erstellte Python Wheel-Datei bereitgestellt wurde.
- Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf "Arbeitsbereich".
- Klicken Sie in den folgenden Ordner: Arbeitsbereich > Benutzer >
<your-username>> .Paket ><project-name>> dev > Artefakte > .internal ><whl-file-name>.whl.
Die Python-Wheel-Datei sollte sich in diesem Ordner befinden.
Überprüfen Sie, ob der Auftrag erstellt wurde:
- Klicken Sie in der Randleiste Ihres Azure Databricks-Arbeitsbereichs auf Aufträge und Pipelines.
- Wählen Sie optional die Filter "Jobs " und "Owned by me" aus .
- Klicken Sie auf [dev
<your-username>]sample_job. - Klicken Sie auf die Registerkarte "Aufgaben". Es sollte eine python_wheel_task geben.
Wenn Sie nach diesem Schritt Änderungen am Bündel vornehmen, wiederholen Sie die Schritte 3-4, um zu überprüfen, ob ihre Bundlekonfiguration noch gültig ist, und stellen Sie das Projekt dann erneut bereit.
Schritt 5: Ausführen des bereitgestellten Projekts
Lösen Sie nun eine Ausführung des Azure Databricks-Jobs in Ihrem Arbeitsbereich aus.
Verwenden Sie im Stammverzeichnis die Databricks CLI, um den
bundle runBefehl auszuführen:databricks bundle run --target dev sample_jobKopieren Sie den Wert von
Run URL, der in Ihrem Terminal angezeigt wird, und fügen Sie ihn in Ihren Webbrowser ein, um Ihren Azure Databricks-Arbeitsbereich zu öffnen.Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich, nachdem die Aufgabe erfolgreich abgeschlossen wurde und eine grüne Titelleiste angezeigt wird, auf die Auftragsaufgabe, um die Ergebnisse anzuzeigen.
Erstellen Sie das whl mithilfe von Poetry oder setuptools
Wenn Sie databricks bundle init mit der Standard-Python-Vorlage verwenden, wird ein Bundle erstellt, das zeigt, wie Sie ein Bundle konfigurieren, das ein Python-Wheel mit uv und pyproject.toml aufbaut. Möglicherweise möchten Sie jedoch Poetry verwenden oder setuptools stattdessen ein Rad bauen.
Installiere Poetry oder Setuptools
Installieren Sie Poetry oder
setuptools:Poetry
-
Installieren Sie Poetry, Version 1.6 oder höher, falls sie noch nicht installiert ist. Um Ihre installierte Version von Poetry zu überprüfen, führen Sie den Befehl
poetry -Voderpoetry --versionaus. - Stellen Sie sicher, dass Python-Version 3.10 oder höher installiert ist. Um Ihre Version von Python zu überprüfen, führen Sie den Befehl
python -Voderpython --versionaus.
Setuptools
Installieren Sie die Pakete
wheelundsetuptools, wenn sie noch nicht installiert sind, indem Sie den folgenden Befehl ausführen:pip3 install --upgrade wheel setuptools-
Installieren Sie Poetry, Version 1.6 oder höher, falls sie noch nicht installiert ist. Um Ihre installierte Version von Poetry zu überprüfen, führen Sie den Befehl
Wenn Sie dieses Bundle mit einem Git-Anbieter speichern möchten, fügen Sie eine
.gitignoreDatei im Stammverzeichnis des Projekts hinzu, und fügen Sie der Datei die folgenden Einträge hinzu:Poetry
.databricks distSetuptools
.databricks build dist src/my_package/my_package.egg-info
Hinzufügen von Builddateien
Erstellen Sie im Stammverzeichnis Ihres Bundles die folgenden Ordner und Dateien, je nachdem, ob Sie Poesie oder
setuptoolszum Erstellen von Python-Raddateien verwenden:Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.tomlSetuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.pyFügen Sie den folgenden Code zur Datei
pyproject.tomlodersetup.pyhinzu: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"- Ersetzen Sie
my-author-namedurch den primären Kontaktnamen Ihrer Organisation. - Ersetzen Sie das
my-author-name>@<my-organizationdurch die primäre E-Mail-Kontaktadresse Ihrer Organisation. - Ersetzen Sie
<my-package-description>durch eine Anzeigebeschreibung für Ihre Python-Wheel-Datei.
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" ] )- Ersetzen Sie
https://<my-url>durch die URL Ihrer Organisation. - Ersetzen Sie
<my-author-name>durch den primären Kontaktnamen Ihrer Organisation. - Ersetzen Sie das
<my-author-name>@<my-organization>durch die primäre E-Mail-Kontaktadresse Ihrer Organisation. - Ersetzen Sie
<my-package-description>durch eine Anzeigebeschreibung für Ihre Python-Wheel-Datei.
- Ersetzen Sie
Hinzufügen der Artefaktbundlekonfiguration
Fügen Sie die
artifactsMapping-Konfiguration zu Ihremdatabricks.ymlhinzu, um daswhlArtefakt zu erstellen.Poetry
Diese Konfiguration führt den
poetry buildBefehl aus und gibt den Pfad zurpyproject.tomlDatei im selben Verzeichnis wie diedatabricks.ymlDatei an.Note
Wenn Sie bereits eine Python-Wheel-Datei erstellt haben und diese nur bereitstellen möchten, ändern Sie die folgende Paketkonfigurationsdatei, indem Sie die
artifacts-Zuordnung auslassen. Die Databricks CLI geht dann davon aus, dass die Python-Raddatei bereits erstellt wurde, und stellt automatisch die Dateien bereit, die in den Einträgen deslibrariesArrayswhlangegeben sind.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
Diese Konfiguration führt den
setuptoolsBefehl aus und gibt den Pfad zursetup.pyDatei im selben Verzeichnis wie diedatabricks.ymlDatei an.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>