Entwickeln einer Python-Wheel-Datei mit Databricks-Ressourcenpaketen
In diesem Artikel wird beschrieben, wie Sie eine Python-Wheel-Datei als Teil eines Databricks-Ressourcenpaket-Projekts erstellen, bereitstellen und ausführen. Weitere Informationen finden Sie unter Was sind Databricks-Ressourcenpakete?.
Anforderungen
- Databricks-CLI-Version 0.218.0 oder höher. Führen Sie den Befehl
databricks -v
aus, 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. - Für den Remotearbeitsbereich müssen Arbeitsbereichsdateien aktiviert sein. Weitere Informationen finden Sie unter Was sind Arbeitsbereichsdateien?.
Entscheidung: Manuelles Erstellen des Bündels oder mithilfe einer Vorlage
Entscheiden Sie, ob Sie ein Startpaket mithilfe einer Vorlage erstellen oder das Bündel manuell erstellen möchten. Das Erstellen des Bündels mithilfe einer Vorlage ist schneller und einfacher, aber das Bündel kann Inhalte erzeugen, die nicht benötigt werden, und die Standardeinstellungen des Bündels müssen für echte Anwendungen weiter angepasst werden. Wenn Sie das Bündel manuell erstellen, können Sie die Einstellungen des Bündels vollständig steuern, aber Sie müssen mit der Funktionsweise von Bündeln vertraut sein, da Sie die gesamte Einrichtung von null anfangen. Wählen Sie einen der folgenden Schritte aus:
Erstellen des Bündels mithilfe einer Vorlage
In diesen Schritten erstellen Sie das Bündel mithilfe der Standardpaketvorlage Azure Databricks für Python. In diesen Schritten wird beschrieben, wie Sie ein Paket, das aus Dateien zum Integrieren in eine Python-Wheel-Datei besteht, und die Definition eines Azure Databricks-Auftrags zum Erstellen dieser Python-Wheel-Datei erstellen. 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.
Die Azure Databricks-Standardpaketvorlage für Python verwendet setuptools zum Erstellen der Python-Wheel-Datei. Wenn Sie stattdessen Poetry verwenden möchten, um die Python-Wheel-Datei zu erstellen, folgen Sie den Anweisungen weiter unten in diesem Abschnitt, um die setuptools
-Implementierung durch eine Poetry-Implementierung zu ersetzen.
Schritt 1: Einrichten der Authentifizierung
In diesem Schritt richten Sie die Authentifizierung zwischen der Databricks CLI auf Ihrem Entwicklungscomputer und Ihrem Azure Databricks-Arbeitsbereich ein. In diesem Artikel wird davon ausgegangen, dass Sie zur Authentifizierung die OAuth-U2M-Authentifizierung (User-to-Machine, Benutzer-zu-Computer) und ein entsprechendes Azure Databricks-Konfigurationsprofil namens DEFAULT
verwenden möchten.
Hinweis
Die U2M-Authentifizierung eignet sich für das Testen dieser Schritte in Echtzeit. Bei vollständig automatisierten Workflows empfiehlt Databricks stattdessen die Verwendung der OAuth-M2M-Authentifizierung (Machine-to-Machine, Computer-zu-Computer). Lesen Sie die Anweisungen zur Einrichtung der M2M-Authentifizierung unter Authentifizierung.
Verwenden Sie die Databricks CLI, um die OAuth-Tokenverwaltung lokal zu initiieren, indem Sie den folgenden Befehl für jeden Zielarbeitsbereich ausführen.
Ersetzen Sie
<workspace-url>
im folgenden Befehl durch Ihre arbeitsbereichsspezifische Azure Databricks-URL, z. B.https://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Die Databricks-CLI fordert Sie auf, die von Ihnen eingegebenen Informationen als Azure Databricks-Konfigurationsprofil zu speichern. Drücken Sie die EINGABETASTE (
Enter
), um den vorgeschlagenen Profilnamen zu übernehmen, oder geben Sie den Namen eines neuen oder bereits vorhandenen Profils ein. Ist bereits ein Profil mit dem gleichen Namen vorhanden, wird es mit den von Ihnen eingegebenen Informationen überschrieben. Sie können Profile verwenden, um Ihren Authentifizierungskontext schnell über mehrere Arbeitsbereiche hinweg zu wechseln.Um eine Liste vorhandener Profile abzurufen, führen Sie in der Databricks-CLI den Befehl
databricks auth profiles
in einem separaten Terminal oder in einer separaten Eingabeaufforderung aus. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, können Sie den Befehldatabricks auth env --profile <profile-name>
ausführen.Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.
Führen Sie einen der folgenden Befehle aus, um den aktuellen OAuth-Tokenwert eines Profils und den bevorstehenden Ablaufzeitstempel des Tokens anzuzeigen:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Wenn Sie über mehrere Profile mit demselben
--host
-Wert verfügen, müssen Sie möglicherweise die Optionen--host
und-p
zusammen angeben, damit die Databricks CLI die richtigen übereinstimmenden Informationen des OAuth-Tokens ermitteln kann.
Schritt 2: Erstellen des Pakets
Ein Bundle enthält die Artefakte, die Sie bereitstellen sowie 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, welches das aus der Vorlage generierte Paket enthält.
Verwenden Sie die Databricks CLI-Version, um den
bundle init
-Befehl auszuführen:databricks bundle init
Übernehmen Sie für
Template to use
den Standardwertdefault-python
, indem SieEnter
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 stub (sample) notebook
no
aus, und drücken SieEnter
. Dadurch wird die Databricks CLI angewiesen, Ihrem Bundle kein Beispielnotizbuch hinzuzufügen.Wählen Sie für
Include a stub (sample) DLT pipeline
no
aus, und drücken SieEnter
. Dadurch wird die Databricks CLI angewiesen, keine Delta Live Tables-Pipeline in Ihrem Bundle zu definieren.Lassen Sie für
Include a stub (sample) Python package
den Standardwertyes
, indem Sie drückenEnter
. Das weist die Databricks CLI an, Beispiel-Python-Radpaketdateien und zugehörige Buildanweisungen zu Ihrem Bundle hinzuzufügen.
Schritt 3: Erkunden des Bundles
Um die von der Vorlage generierten Dateien anzuzeigen, wechseln Sie zum Stammverzeichnis Ihres neu erstellten Bündels, und öffnen Sie dieses Verzeichnis mit Ihrer bevorzugten IDE, z. B. Visual Studio Code. Zu den Dateien von besonderem Interesse gehören:
databricks.yml
: Diese Datei gibt den programmgesteuerten Namen des Bündels an, enthält einen Verweis auf die Python-Radauftragsdefinition und gibt Einstellungen für den Zielarbeitsbereich an.resources/<project-name>_job.yml
: Diese Datei gibt die Einstellungen des Python-Radauftrags an.src/<project-name>
: Dieses Verzeichnis enthält die Dateien, die der Python-Wheel-Auftrag zum Erstellen der Python-Wheel-Datei verwendet.
Hinweis
Wenn Sie die Python-Wheel-Datei auf einem Zielcluster installieren möchten, auf dem Databricks Runtime 12.2 LTS oder eine frühere Version installiert ist, 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
Diese Zuordnung weist die Databricks CLI an, die folgenden Schritte auszuführen:
- Stellen Sie eine Kopie der Python-Wheel-Datei im Hintergrund bereit. Dieser Bereitstellungspfad lautet in der Regel
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Erstellen Sie im Hintergrund ein Notebook, das Anweisungen zum Installieren der zuvor bereitgestellten Python-Wheel-Datei auf dem Zielcluster enthält. Dieser Notebookpfad lautet in der Regel
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
. - Wenn Sie einen Auftrag ausführen, der Python-Wheel-Aufgaben enthält, die auf die vorherige Python-Wheel-Datei verweisen, wird im Hintergrund ein Auftrag erstellt, der das vorherige Notebook ausführt.
Sie müssen diese Zuordnung nicht für Zielcluster angeben, auf denen Databricks Runtime 13.1 oder höher installiert ist, da Python-Wheel-Installationen aus dem Dateisystem des Azure Databricks-Arbeitsbereichs automatisch auf diesen Zielclustern installiert werden.
Schritt 4: Aktualisieren des Projektpakets für die Verwendung von Poetry
Standardmäßig gibt die Paketvorlage das Erstellen der Python-Wheel-Datei mithilfe von setuptools
zusammen mit den Dateien setup.py
und requirements-dev.txt
an. Wenn Sie diese Standardwerte beibehalten möchten, fahren Sie fort mit Schritt 5: Überprüfen der Paketkonfigurationsdatei des Projekts.
Um das Paket des Projekts so zu aktualisieren, dass Poetry anstelle von setuptools
verwendet wird, stellen Sie sicher, dass Ihr lokaler Entwicklungscomputer die folgenden Anforderungen erfüllt:
- Poetry-Version 1.6 oder höher. Um Ihre installierte Version von Poetry zu überprüfen, führen Sie den Befehl
poetry -V
oderpoetry --version
aus. Informationen zum Installieren oder Upgraden von Poetry finden Sie unter Installation. - Python-Version 3.10 oder höher. Um Ihre Version von Python zu überprüfen, führen Sie den Befehl
python -V
oderpython --version
aus. - Databricks-CLI-Version 0.209.0 oder höher. Führen Sie für Ihre Version der Databricks CLI den Befehl
databricks -v
oderdatabricks --version
aus. Weitere Informationen finden Sie unter Installieren oder Aktualisieren der Databricks CLI.
Nehmen Sie die folgenden Änderungen am Projektpaket vor:
Weisen Sie vom Stammverzeichnis des Pakets aus
poetry
an, das Python-Wheel für Poetry zu initialisieren, indem Sie den folgenden Befehl ausführen:poetry init
Poetry zeigt mehrere Eingabeaufforderungen an. Beantworten Sie für die Python-Wheelbuilds diese Eingabeaufforderungen wie folgt, um den zugehörigen Standardeinstellungen im Projektpaket zu entsprechen:
- Geben Sie für
Package name
den Namen des untergeordneten Ordners unter/src
ein und drücken Sie dannEnter
. Dies sollte auch der Wert des Paketsname
sein, der in dersetup.py
-Datei des Pakets definiert ist. - Geben Sie für
Version
0.0.1
ein, und drücken SieEnter
. Dies entspricht der Versionsnummer, die in dersrc/<project-name>/__init__.py
-Datei des Pakets definiert ist. - Geben Sie für
Description
wheel file based on <project-name>/src
ein (ersetzen Sie<project-name>
durch den Namen des Projekts) und drücken SieEnter
. Dies entspricht demdescription
-Wert, der in dersetup.py
-Datei der Vorlage definiert ist. - Drücken Sie für
Author
Enter
. Dieser Standardwert entspricht dem Autor, der in dersetup.py
-Datei der Vorlage definiert ist. - Drücken Sie für
License
Enter
. In der Vorlage ist keine Lizenz definiert. - Geben Sie für
Compatible Python versions
die Python-Version ein, die dem in Ihren Ziel-Azure Databricks-Clustern (z. B.^3.10
) entspricht, und drücken SieEnter
. - Geben Sie für
Would you like to define your main dependencies interactively?
no
ein und drücken SieEnter
. Sie definieren Ihre Abhängigkeiten später. - Geben Sie für
Would you like to define your development dependencies interactively?
no
ein und drücken SieEnter
. Sie definieren Ihre Abhängigkeiten später. - Drücken Sie für
Do you confirm generation?
Enter
.
- Geben Sie für
Nachdem Sie die Eingabeaufforderungen abgeschlossen haben, fügt Poetry dem Projekt des Pakets eine
pyproject.toml
-Datei hinzu. Informationen zur Dateipyproject.toml
finden Sie unter Datei „pyproject.toml“.Weisen Sie im Stammverzeichnis des Pakets
poetry
an, die Dateipyproject.toml
zu lesen, die Abhängigkeiten aufzulösen und zu installieren sowie eine Datei vom Typpoetry.lock
zum Sperren der Abhängigkeiten und schließlich eine virtuelle Umgebung zu erstellen. Führen Sie zu diesem Zweck den folgenden Befehl aus:poetry install
Fügen Sie den folgenden Abschnitt am Ende der
pyproject.toml
-Datei hinzu, indem Sie<project-name>
mit dem Namen des Verzeichnisses ersetzen, das diesrc/<project-name>/main.py
-Datei enthält (z. B.my_project
):[tool.poetry.scripts] main = "<project-name>.main:main"
Der Abschnitt gibt den Einstiegspunkt des Python-Wheels für den Python-Wheelauftrag an.
Fügen Sie die folgende Zuordnung auf der obersten Ebene der
databricks.yml
-Datei des Pakets hinzu:artifacts: default: type: whl build: poetry build path: .
Diese Zuordnung weist die Databricks-Befehlszeilenschnittstelle (Command Line Interface, CLI) an, Poetry zum Erstellen einer Python-Wheel-Datei zu verwenden.
Löschen Sie die
setup.py
- undrequirements-dev.txt
-Dateien dem Paket, da Poetry sie nicht benötigt.
Schritt 5: Überprüfen der Paketkonfigurationsdatei des Projekts
In diesem Schritt überprüfen Sie, ob die Bundlekonfiguration gültig ist.
Verwenden Sie im Stammverzeichnis die Databricks CLI, um den
bundle validate
-Befehl wie folgt auszuführen:databricks bundle validate
Wenn 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.
Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie diesen Schritt wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist.
Schritt 6: Erstellen der Python-Wheel-Datei und Bereitstellen des lokalen Projekts im Remotearbeitsbereich
In diesem Schritt erstellen Sie die Python-Wheel-Datei, stellen Sie die erstellte Python-Wheel-Datei in Ihrem Azure Databricks-Remotearbeitsbereich bereit und erstellen Sie den Azure Databricks-Auftrag in Ihrem Arbeitsbereich.
Wenn Sie
setuptools
verwenden, installieren Sie die Paketewheel
undsetuptools
, wenn Sie dies noch nicht getan haben, indem Sie den folgenden Befehl ausführen:pip3 install --upgrade wheel setuptools
Verwenden Sie im Visual Studio Code-Terminal die Databricks-CLI, um den Befehl
bundle deploy
wie folgt auszuführen:databricks bundle deploy -t dev
Wenn Sie überprüfen möchten, ob die lokal erstellte Python-Wheel-Datei bereitgestellt wurde, führen Sie die folgenden Schritte aus:
- Klicken Sie auf der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Arbeitsbereich.
- Klicken Sie in den folgenden Ordner: Arbeitsbereich > Benutzer >
<your-username>
> .Paket ><project-name>
> dev > Artefakte > .internal ><random-guid>
.
Die Python-Wheel-Datei sollte sich in diesem Ordner befinden.
Wenn Sie überprüfen möchten, ob der Auftrag erstellt wurde:
- Klicken Sie in der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Workflows.
- Klicken Sie auf der Registerkarte Aufträge auf [dev
<your-username>
]<project-name>
_job. - Klicken Sie auf die Registerkarte Aufgaben.
Es sollte eine Aufgabe geben: main_task.
Wenn Sie nach diesem Schritt Änderungen an Ihrem Bündel vornehmen, sollten Sie die Schritte 5 bis 6 wiederholen, um zu überprüfen, ob Ihre Bündelkonfiguration noch gültig ist, und dann das Projekt erneut bereitstellen.
Schritt 7: Ausführen des bereitgestellten Projekts
In diesem Schritt führen Sie den Azure Databricks-Auftrag in Ihrem Arbeitsbereich aus.
Verwenden Sie im Stammverzeichnis die Databricks CLI, um den
bundle run
-Befehl wie folgt auszuführen, indem Sie<project-name>
durch den Namen des Projekts aus Schritt 2 ersetzen:databricks bundle run -t dev <project-name>_job
Kopieren 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 auf Ihren Azure Databricks-Arbeitsbereich, nachdem die Aufgabe erfolgreich abgeschlossen wurde und eine grüne Titelleiste anzeigt, und klicken Sie auf die main_task-Aufgabe, um die Ergebnisse anzuzeigen.
Wenn Sie nach diesem Schritt Änderungen an Ihrem Paket vornehmen, sollten Sie die Schritte 5 bis 7 wiederholen, um zu überprüfen, ob Ihre Paketkonfiguration noch gültig ist, das Projekt erneut bereitstellen und dieses Projekt ausführen.
Sie haben das Ende der Schritte zum Erstellen eines Pakets mithilfe einer Vorlage erreicht.
Manuelles Erstellen des Bündels
In diesen Schritten erstellen Sie das Paket von Grund auf von Hand. Diese Schritte führen Sie durch die Erstellung eines Pakets mit Dateien, die in eine Python-Wheel-Datei integriert werden sollen, und der Definition eines Databricks-Auftrags zum Erstellen dieser Python-Wheel-Datei. Anschließend führen Sie über den Python-Wheel-Auftrag in Ihrem Databricks-Arbeitsbereich die Überprüfung, Bereitstellung und Erstellung der in einer Python-Wheel-Datei bereitgestellten Dateien durch.
Diese Schritte umfassen das Hinzufügen von Inhalten zu einer YAML-Datei. Optional können Sie eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) verwenden, die beim Arbeiten mit YAML-Dateien automatische Schemavorschläge und Aktionen bereitstellt. In den folgenden Schritten wird Visual Studio Code mit der YAML-Erweiterung verwendet, die aus dem Visual Studio Code Marketplace installiert werden kann.
Bei diesen Schritten wird davon ausgegangen, dass Sie bereits wissen:
- Wie Sie Python-Wheel-Dateien mit Poetry oder
setuptools
erstellen, kompilieren und verwenden. Informationen zu Poetry finden Sie unter Grundlegende Nutzung. Weitere Informationen fürsetuptools
finden Sie im Benutzerhandbuch für die Python-Paketerstellung. - Wie Sie Python-Wheel-Dateien als Teil eines Azure Databricks-Auftrags verwenden. Weitere Informationen finden Sie unter Verwenden einer Python-Wheel-Datei in einem Azure Databricks-Auftrag.
Folgen Sie diesen Anweisungen, um ein Beispielpaket zu erstellen, das eine Python-Wheel-Datei mit Poetry oder setuptools
erstellt und bereitstellt und anschließend die bereitgestellte Python-Wheel-Datei ausführt.
Wenn Sie bereits eine Python-Wheel-Datei erstellt haben und diese nur bereitstellen und ausführen möchten, fahren Sie mit dem Angeben der Python-Wheel-Einstellungen in der Paketkonfigurationsdatei in Schritt 3: Erstellen der Paketkonfigurationsdatei fort.
Schritt 1: Einrichten der Authentifizierung
In diesem Schritt richten Sie die Authentifizierung zwischen der Databricks CLI auf Ihrem Entwicklungscomputer und Ihrem Azure Databricks-Arbeitsbereich ein. In diesem Artikel wird davon ausgegangen, dass Sie zur Authentifizierung die OAuth-U2M-Authentifizierung (User-to-Machine, Benutzer-zu-Computer) und ein entsprechendes Azure Databricks-Konfigurationsprofil namens DEFAULT
verwenden möchten.
Hinweis
Die U2M-Authentifizierung eignet sich für das Testen dieser Schritte in Echtzeit. Bei vollständig automatisierten Workflows empfiehlt Databricks stattdessen die Verwendung der OAuth-M2M-Authentifizierung (Machine-to-Machine, Computer-zu-Computer). Lesen Sie die Anweisungen zur Einrichtung der M2M-Authentifizierung unter Authentifizierung.
Verwenden Sie die Databricks CLI, um die OAuth-Tokenverwaltung lokal zu initiieren, indem Sie den folgenden Befehl für jeden Zielarbeitsbereich ausführen.
Ersetzen Sie
<workspace-url>
im folgenden Befehl durch Ihre arbeitsbereichsspezifische Azure Databricks-URL, z. B.https://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Die Databricks-CLI fordert Sie auf, die von Ihnen eingegebenen Informationen als Azure Databricks-Konfigurationsprofil zu speichern. Drücken Sie die EINGABETASTE (
Enter
), um den vorgeschlagenen Profilnamen zu übernehmen, oder geben Sie den Namen eines neuen oder bereits vorhandenen Profils ein. Ist bereits ein Profil mit dem gleichen Namen vorhanden, wird es mit den von Ihnen eingegebenen Informationen überschrieben. Sie können Profile verwenden, um Ihren Authentifizierungskontext schnell über mehrere Arbeitsbereiche hinweg zu wechseln.Um eine Liste vorhandener Profile abzurufen, führen Sie in der Databricks-CLI den Befehl
databricks auth profiles
in einem separaten Terminal oder in einer separaten Eingabeaufforderung aus. Um die vorhandenen Einstellungen eines bestimmten Profils anzuzeigen, können Sie den Befehldatabricks auth env --profile <profile-name>
ausführen.Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.
Führen Sie einen der folgenden Befehle aus, um den aktuellen OAuth-Tokenwert eines Profils und den bevorstehenden Ablaufzeitstempel des Tokens anzuzeigen:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Wenn Sie über mehrere Profile mit demselben
--host
-Wert verfügen, müssen Sie möglicherweise die Optionen--host
und-p
zusammen angeben, damit die Databricks CLI die richtigen übereinstimmenden Informationen des OAuth-Tokens ermitteln kann.
Schritt 2: Erstellen des Pakets
Ein Bundle enthält die Artefakte, die Sie bereitstellen sowie die Einstellungen für die Workflows, die Sie ausführen möchten.
Erstellen Sie im Stammverzeichnis Ihres Pakets die folgenden Ordner und Dateien, je nachdem, ob Sie Poetry oder
setuptools
zum Erstellen von Python-Wheel-Dateien verwenden:Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.toml
Setuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.py
Lassen Sie die
__init__.py
-Datei leer.Fügen Sie der
main.py
-Datei den folgenden Code hinzu, und speichern Sie sie: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()
Fügen Sie der
my_module.py
-Datei den folgenden Code hinzu, und speichern Sie sie: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
Fügen Sie der
pyproject.toml
- odersetup.py
-Datei den folgenden Code hinzu und speichern Sie sie dann: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-name
mit dem Namen des primären Kontakts Ihrer Organisation. - Ersetzen Sie
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.
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>
mit dem Namen des primären Kontakts Ihrer Organisation. - Ersetzen Sie
<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
Schritt 3: Erstellen der Paketkonfigurationsdatei
Eine Paketkonfigurationsdatei beschreibt die Artefakte, die Sie bereitstellen möchten, und die Workflows, die Sie ausführen möchten.
Fügen Sie im Stammverzeichnis Ihres Pakets eine Paketkonfigurationsdatei mit dem Namen
databricks.yml
hinzu. Fügen Sie der Datei den folgenden Code hinzu:Poetry
Hinweis
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-Wheel-Datei bereits erstellt wurde, und stellt automatisch die Dateien bereit, die in denwhl
-Einträgen deslibraries
-Arrays angegeben 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
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>
Ersetzen Sie
<workspace-url>
durch Ihre arbeitsbereichsspezifische URL, z. B.https://adb-1234567890123456.7.azuredatabricks.net
.Die
artifacts
-Zuordnung ist erforderlich, um Python-Wheel-Dateien mit Poetry zu erstellen, und ist zum Erstellen von Python-Wheel-Dateien mitsetuptools
optional. Dieartifacts
-Zuordnung enthält eine oder mehrere Artefaktdefinitionen mit den folgenden Zuordnungen:- Die
type
-Zuordnung muss vorhanden und aufwhl
festgelegt sein, um anzugeben, dass eine Python-Wheel-Datei erstellt werden soll. Forsetuptools
istwhl
der Standard, wenn keine Artefaktdefinitionen angegeben sind. - Die
path
-Zuordnung gibt den Pfad zurpyproject.toml
-Datei für Poetry oder zursetup.py
-Datei fürsetuptools
an. Dieser Pfad ist relativ zurdatabricks.yml
-Datei. Fürsetuptools
ist dieser Pfad standardmäßig.
(dasselbe Verzeichnis wie diedatabricks.yml
-Datei). - Die
build
-Zuordnung gibt benutzerdefinierte Buildbefehle an, die zum Erstellen der Python-Wheel-Datei ausgeführt werden sollen. Fürsetuptools
ist dieser Befehl standardmäßigpython3 setup.py bdist wheel
. - Die
files
-Zuordnung besteht aus einer oder mehrerensource
-Zuordnungen, die alle zusätzlichen Dateien angeben, die im Python-Wheelbuild enthalten sein sollen. Es gibt keinen Standardwert.
Hinweis
Wenn Sie die Python-Wheel-Datei auf einem Zielcluster installieren möchten, auf dem Databricks Runtime 12.2 LTS oder eine frühere Version installiert ist, müssen Sie der
databricks.yml
-Datei die folgende Zuordnung auf oberster Ebene hinzufügen:# Applies to jobs with python_wheel_task and that use # clusters with Databricks Runtime 13.0 or below installed. experimental: python_wheel_wrapper: true
Diese Zuordnung weist die Databricks CLI an, die folgenden Schritte auszuführen:
- Bereitstellen einer Kopie der Python-Wheel-Datei im Hintergrund. Dieser Bereitstellungspfad lautet in der Regel
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
. - Erstellen eines Notebooks im Hintergrund, das Anweisungen zum Installieren der zuvor bereitgestellten Python-Wheel-Datei auf dem Zielcluster enthält. Dieser Notebookpfad lautet in der Regel
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
. - Wenn Sie einen Auftrag ausführen, der eine Python-Wheel-Aufgabe enthält, die auf die vorherige Python-Wheel-Datei verweist, wird im Hintergrund ein Auftrag erstellt, der das vorherige Notebook ausführt.
Sie müssen diese Zuordnung nicht für Zielcluster angeben, auf denen Databricks Runtime 13.1 oder höher installiert ist, da Python-Wheel-Installationen aus dem Dateisystem des Azure Databricks-Arbeitsbereichs automatisch auf diesen Zielclustern installiert werden.
- Die
Wenn Sie Poetry verwenden, gehen Sie wie folgt vor:
- Installieren Sie Poetry, Version 1.6 oder höher, falls es noch nicht installiert ist. Um Ihre installierte Version von Poetry zu überprüfen, führen Sie den Befehl
poetry -V
oderpoetry --version
aus. - 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 -V
oderpython --version
aus. - Stellen Sie sicher, dass Databricks CLI, Version 0.209.0 oder höher, vorhanden ist. Führen Sie für Ihre Version der Databricks CLI den Befehl
databricks -v
oderdatabricks --version
aus. Weitere Informationen finden Sie unter Installieren oder Aktualisieren der Databricks CLI.
- Installieren Sie Poetry, Version 1.6 oder höher, falls es noch nicht installiert ist. Um Ihre installierte Version von Poetry zu überprüfen, führen Sie den Befehl
Wenn Sie
setuptools
verwenden, installieren Sie die Paketewheel
undsetuptools
, wenn sie noch nicht installiert sind, indem Sie den folgenden Befehl ausführen:pip3 install --upgrade wheel setuptools
Wenn Sie dieses Paket bei einem Git-Anbieter speichern möchten, fügen Sie eine
.gitignore
-Datei im Stammverzeichnis des Projekts hinzu, und fügen Sie der Datei die folgenden Einträge hinzu:Poetry
.databricks dist
Setuptools
.databricks build dist src/my_package/my_package.egg-info
Schritt 4: Überprüfen der Bundlekonfigurationsdatei des Projekts
In diesem Schritt überprüfen Sie, ob die Bundlekonfiguration gültig ist.
Überprüfen Sie im Stammverzeichnis die Bundlekonfigurationsdatei:
databricks bundle validate
Wenn 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.
Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie diesen Schritt wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist.
Schritt 5: Erstellen der Python-Wheel-Datei und Bereitstellen des lokalen Projekts im Remotearbeitsbereich
Erstellen Sie die Python-Wheel-Datei lokal, stellen Sie die erstellte Python-Wheel-Datei und das Notebook in Ihrem Arbeitsbereich bereit, und erstellen Sie den Auftrag in Ihrem Arbeitsbereich:
databricks bundle deploy -t dev
Schritt 6: Ausführen des bereitgestellten Projekts
Führen Sie den bereitgestellten Auftrag aus, der das bereitgestellte Notebook verwendet, um die bereitgestellte Python-Wheel-Datei aufzurufen:
databricks bundle run -t dev wheel-job
Kopieren Sie in der Ausgabe
Run URL
und kopieren Sie die URL in die Adressleiste Ihres Webbrowsers.Auf der Seite Ausgabe der Auftragsausführung werden die folgenden Ergebnisse angezeigt:
200 + 400 = 600 400 - 200 = 200 200 * 400 = 80000 400 / 200 = 2.0
Wenn Sie nach diesem Schritt Änderungen an Ihrem Bundle vornehmen, sollten Sie die Schritte 3 bis 5 wiederholen, um zu überprüfen, ob Ihre Bundlekonfiguration noch gültig ist, das Projekt erneut bereitstellen und dieses Projekt ausführen.
Erstellen und Installieren einer Python-Wheel-Datei für einen Auftrag
Zum Erstellen einer Python-Wheel-Datei mit Poetry oder setuptools
und zum anschließenden Verwenden dieser Python-Wheel-Datei in einem Auftrag müssen Sie Ihrer Datei databricks.yml
eine oder zwei Zuordnungen hinzufügen.
Wenn Sie Poetry verwenden, müssen Sie die folgende artifacts
-Zuordnung in die databricks.yml
-Datei einschließen. Diese Zuordnung führt den poetry build
-Befehl aus und verwendet die pyproject.toml
-Datei, die sich im selben Verzeichnis wie die databricks.yml
-Datei befindet:
artifacts:
default:
type: whl
build: poetry build
path: .
Hinweis
Die artifacts
-Zuordnung ist optional für setuptools
. Standardmäßig führt die Databricks CLI für setuptools
den Befehl python3 setup.py bdist_wheel
aus und verwendet die setup.py
-Datei, die sich im selben Verzeichnis wie die databricks.yml
-Datei befindet. Die Databricks CLI geht davon aus, dass Sie bereits einen Befehl, z. B. pip3 install --upgrade wheel setuptools
zum Installieren der Pakete wheel
und setuptools
, ausgeführt haben, wenn sie noch nicht installiert sind.
Außerdem muss die libraries
-Zuordnung der Auftragsaufgabe einen whl
-Wert enthalten, der den Pfad zur erstellten Python-Wheel-Datei relativ zu der Konfigurationsdatei angibt, in der sich die Deklaration befindet. Das folgende Beispiel zeigt dies in einer Notebookaufgabe an (die Auslassungspunkte zeigen den aus Platzgründen weggelassen Inhalt an):
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:
# ...
Erstellen und Installieren einer Python-Wheel-Datei für eine Pipeline
Um eine Python-Wheel-Datei mit Poetry oder setuptools
zu erstellen und dann in einer Delta Live Tables-Pipeline auf diese Python-Wheel-Datei zu verweisen, müssen Sie Ihrer Datei databricks.yml
eine Zuordnung hinzufügen, wenn Sie Poetry verwenden, und Ihrem Pipelinenotebook einen %pip install
-Befehl hinzufügen. Gehen Sie dazu wie im Folgenden beschrieben vor.
Wenn Sie Poetry verwenden, müssen Sie die folgende artifacts
-Zuordnung in die databricks.yml
-Datei einschließen. Diese Zuordnung führt den poetry build
-Befehl aus und verwendet die pyproject.toml
-Datei, die sich im selben Verzeichnis wie die databricks.yml
-Datei befindet:
artifacts:
default:
type: whl
build: poetry build
path: .
Hinweis
Die artifacts
-Zuordnung ist optional für setuptools
. Standardmäßig führt die Databricks CLI für setuptools
den Befehl python3 setup.py bdist_wheel
aus und verwendet die setup.py
-Datei, die sich im selben Verzeichnis wie die databricks.yml
-Datei befindet. Die Databricks CLI geht davon aus, dass Sie bereits einen Befehl, z. B. pip3 install --upgrade wheel setuptools
zum Installieren der Pakete wheel
und setuptools
, ausgeführt haben, wenn sie noch nicht installiert sind.
Außerdem muss das zugehörige Pipelinenotebook einen %pip install
-Befehl enthalten, um die erstellte Python-Wheel-Datei zu installieren. Sie Python-Bibliotheken.