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.

  1. 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>
    
  2. 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 Befehl databricks auth env --profile <profile-name> ausführen.

  3. Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.

  4. 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.

  1. 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.

  2. Verwenden Sie die Databricks CLI-Version, um den bundle init-Befehl auszuführen:

    databricks bundle init
    
  3. Übernehmen Sie für Template to use den Standardwert default-python, indem Sie Enter drücken.

  4. Lassen Sie für Unique name for this project, den Standardwert von my_project, oder geben Sie einen anderen Wert ein, und drücken Sie dann Enter. Dadurch wird der Name des Stammverzeichnisses für dieses Bündel bestimmt. Dieses Stammverzeichnis wird in Ihrem aktuellen Arbeitsverzeichnis erstellt.

  5. Wählen Sie für Include a stub (sample) notebook no aus, und drücken Sie Enter. Dadurch wird die Databricks CLI angewiesen, Ihrem Bundle kein Beispielnotizbuch hinzuzufügen.

  6. Wählen Sie für Include a stub (sample) DLT pipeline no aus, und drücken Sie Enter. Dadurch wird die Databricks CLI angewiesen, keine Delta Live Tables-Pipeline in Ihrem Bundle zu definieren.

  7. Lassen Sie für Include a stub (sample) Python package den Standardwert yes, indem Sie drücken Enter. 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 oder poetry --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 oder python --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 oder databricks --version aus. Weitere Informationen finden Sie unter Installieren oder Aktualisieren der Databricks CLI.

Nehmen Sie die folgenden Änderungen am Projektpaket vor:

  1. 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
    
  2. 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:

    1. Geben Sie für Package name den Namen des untergeordneten Ordners unter /src ein und drücken Sie dann Enter. Dies sollte auch der Wert des Pakets name sein, der in der setup.py-Datei des Pakets definiert ist.
    2. Geben Sie für Version 0.0.1 ein, und drücken Sie Enter. Dies entspricht der Versionsnummer, die in der src/<project-name>/__init__.py-Datei des Pakets definiert ist.
    3. 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 Sie Enter. Dies entspricht dem description-Wert, der in der setup.py-Datei der Vorlage definiert ist.
    4. Drücken Sie für Author Enter. Dieser Standardwert entspricht dem Autor, der in der setup.py-Datei der Vorlage definiert ist.
    5. Drücken Sie für License Enter. In der Vorlage ist keine Lizenz definiert.
    6. 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 Sie Enter.
    7. Geben Sie für Would you like to define your main dependencies interactively? no ein und drücken Sie Enter. Sie definieren Ihre Abhängigkeiten später.
    8. Geben Sie für Would you like to define your development dependencies interactively? no ein und drücken Sie Enter. Sie definieren Ihre Abhängigkeiten später.
    9. Drücken Sie für Do you confirm generation? Enter.
  3. Nachdem Sie die Eingabeaufforderungen abgeschlossen haben, fügt Poetry dem Projekt des Pakets eine pyproject.toml-Datei hinzu. Informationen zur Datei pyproject.toml finden Sie unter Datei „pyproject.toml“.

  4. Weisen Sie im Stammverzeichnis des Pakets poetry an, die Datei pyproject.toml zu lesen, die Abhängigkeiten aufzulösen und zu installieren sowie eine Datei vom Typ poetry.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
    
  5. Fügen Sie den folgenden Abschnitt am Ende der pyproject.toml-Datei hinzu, indem Sie <project-name> mit dem Namen des Verzeichnisses ersetzen, das die src/<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.

  6. 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.

  7. Löschen Sie die setup.py- und requirements-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.

  1. Verwenden Sie im Stammverzeichnis die Databricks CLI, um den bundle validate-Befehl wie folgt auszuführen:

    databricks bundle validate
    
  2. 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.

  1. Wenn Sie setuptools verwenden, installieren Sie die Pakete wheel und setuptools, wenn Sie dies noch nicht getan haben, indem Sie den folgenden Befehl ausführen:

    pip3 install --upgrade wheel setuptools
    
  2. Verwenden Sie im Visual Studio Code-Terminal die Databricks-CLI, um den Befehl bundle deploy wie folgt auszuführen:

    databricks bundle deploy -t dev
    
  3. Wenn Sie überprüfen möchten, ob die lokal erstellte Python-Wheel-Datei bereitgestellt wurde, führen Sie die folgenden Schritte aus:

    1. Klicken Sie auf der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Arbeitsbereich.
    2. 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.

  4. Wenn Sie überprüfen möchten, ob der Auftrag erstellt wurde:

    1. Klicken Sie in der Seitenleiste Ihres Azure Databricks-Arbeitsbereichs auf Workflows.
    2. Klicken Sie auf der Registerkarte Aufträge auf [dev <your-username>] <project-name>_job.
    3. 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.

  1. 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
    
  2. 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.

  3. 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:

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.

  1. 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>
    
  2. 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 Befehl databricks auth env --profile <profile-name> ausführen.

  3. Führen Sie in Ihrem Webbrowser die Anweisungen auf dem Bildschirm aus, um sich bei Ihrem Azure Databricks-Arbeitsbereich anzumelden.

  4. 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.

  1. 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
    
  2. Lassen Sie die __init__.py-Datei leer.

  3. 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()
    
  4. 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
    
  5. Fügen Sie der pyproject.toml- oder setup.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.

Schritt 3: Erstellen der Paketkonfigurationsdatei

Eine Paketkonfigurationsdatei beschreibt die Artefakte, die Sie bereitstellen möchten, und die Workflows, die Sie ausführen möchten.

  1. 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 den whl-Einträgen des libraries-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 mit setuptools optional. Die artifacts-Zuordnung enthält eine oder mehrere Artefaktdefinitionen mit den folgenden Zuordnungen:

    • Die type-Zuordnung muss vorhanden und auf whl festgelegt sein, um anzugeben, dass eine Python-Wheel-Datei erstellt werden soll. For setuptools ist whl der Standard, wenn keine Artefaktdefinitionen angegeben sind.
    • Die path-Zuordnung gibt den Pfad zur pyproject.toml-Datei für Poetry oder zur setup.py-Datei für setuptools an. Dieser Pfad ist relativ zur databricks.yml-Datei. Für setuptools ist dieser Pfad standardmäßig . (dasselbe Verzeichnis wie die databricks.yml-Datei).
    • Die build-Zuordnung gibt benutzerdefinierte Buildbefehle an, die zum Erstellen der Python-Wheel-Datei ausgeführt werden sollen. Für setuptools ist dieser Befehl standardmäßig python3 setup.py bdist wheel.
    • Die files-Zuordnung besteht aus einer oder mehreren source-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.

  2. 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 oder poetry --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 oder python --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 oder databricks --version aus. Weitere Informationen finden Sie unter Installieren oder Aktualisieren der Databricks CLI.
  3. Wenn Sie setuptools verwenden, installieren Sie die Pakete wheel und setuptools, wenn sie noch nicht installiert sind, indem Sie den folgenden Befehl ausführen:

    pip3 install --upgrade wheel setuptools
    
  4. 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.

  1. Überprüfen Sie im Stammverzeichnis die Bundlekonfigurationsdatei:

    databricks bundle validate
    
  2. 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

  1. 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
    
  2. Kopieren Sie in der Ausgabe Run URL und kopieren Sie die URL in die Adressleiste Ihres Webbrowsers.

  3. 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.