Verwenden einer Python-Wheel-Datei in einem Azure Databricks-Auftrag

Eine Python-Wheel-Datei ist eine Standardmethode zum Packen und Verteilen der Dateien, die zur Ausführung einer Python-Anwendung erforderlich sind. Mithilfe der Python-Wheel-Aufgabe können Sie eine schnelle und zuverlässige Installation von Python-Code in Ihren Azure Databricks-Aufträgen sicherstellen. Dieser Artikel enthält ein Beispiel zum Erstellen einer Python-Wheel-Datei und eines Auftrags, der die in der Python-Wheel-Datei gepackte Anwendung ausführt. In diesem Beispiel führen Sie folgende Schritte aus:

  • Erstellen der Python-Dateien, die eine Beispielanwendung definieren
  • Bündeln der Beispieldateien in einer Python-Wheel-Datei
  • Erstellen eines Auftrags zum Ausführen der Python-Wheel-Datei
  • Ausführen des Auftrags und Anzeigen der Ergebnisse

Vorbemerkungen

Für dieses Beispiel benötigen Sie Folgendes:

  • Python3

  • Die Python-Pakete wheel und setuptool. Sie können diese Pakete mit pip installieren. Beispielsweise können Sie den folgenden Befehl ausführen, um diese Pakete zu installieren:

    pip install wheel setuptools
    

Schritt 1: Erstellen eines lokalen Verzeichnisses für das Beispiel

Erstellen Sie ein lokales Verzeichnis, in dem Sie den Beispielcode und die generierten Artefakte (z. B. databricks_wheel_test) speichern können.

Schritt 2: Erstellen des Python-Beispielskripts

Das folgende Python-Beispiel ist ein einfaches Skript, das Eingabeargumente liest und diese Argumente ausgibt. Kopieren Sie dieses Skript, und speichern Sie es im Pfad my_test_code/__main__.py in dem Verzeichnis, das Sie im vorherigen Schritt erstellt haben.

"""
The entry point of the Python Wheel
"""

import sys

def main():
  # This method will print the provided arguments
  print('Hello from my func')
  print('Got arguments:')
  print(sys.argv)

if __name__ == '__main__':
  main()

Schritt 3: Erstellen einer Metadatendatei für das Paket

Die folgende Datei enthält Metadaten, die das Paket beschreiben. Speichern Sie diese Datei im Pfad my_test_code/__init__.py in dem Verzeichnis, das Sie in Schritt 1 erstellt haben.

__version__ = "0.0.1"
__author__ = "Databricks"

Schritt 4: Erstellen der Python-Wheel-Datei

Zum Konvertieren der Python-Artefakte in eine Python-Wheel-Datei müssen Paketmetadaten wie z. B. der Paketname und Einstiegspunkte angegeben werden. Das folgende Skript definiert diese Metadaten.

Hinweis

Die in diesem Skript definierten entry_points werden verwendet, um das Paket im Azure Databricks-Workflow auszuführen. Bei jedem Wert in entry_points steht der Wert vor = (in diesem Beispiel run) für den Namen des Einstiegspunkts und wird zur Konfiguration der Python-Wheel-Aufgabe verwendet.

  1. Speichern Sie dieses Skript in einer Datei mit dem Namen setup.py im Stammverzeichnis des Ordners, den Sie in Schritt 1 erstellt haben:

    from setuptools import setup, find_packages
    
    import my_test_code
    
    setup(
      name='my_test_package',
      version=my_test_code.__version__,
      author=my_test_code.__author__,
      url='https://databricks.com',
      author_email='john.doe@databricks.com',
      description='my test wheel',
      packages=find_packages(include=['my_test_code']),
      entry_points={
        'group_1': 'run=my_test_code.__main__:main'
      },
      install_requires=[
        'setuptools'
      ]
    )
    
  2. Wechseln Sie in das Verzeichnis, das Sie in Schritt 1 erstellt haben, und führen Sie den folgenden Befehl aus, um Ihren Code als Python-Wheel-Distribution zu packen:

    python3 setup.py bdist_wheel
    

Mit diesem Befehl wird die Python-Wheel-Datei erstellt und in der Datei dist/my_test_package-0.0.1-py3.none-any.whl in Ihrem Verzeichnis gespeichert.

Schritt 5. Erstellen eines Azure Databricks-Auftrags zum Ausführen der Python-Wheel-Datei

  1. Wechseln Sie zu Ihrer Azure Databricks-Zielseite, und führen Sie einen der folgenden Schritte aus:

    • Klicken Sie auf der Randleiste auf Symbol für Workflows Workflows und dann auf Schaltfläche „Auftrag erstellen“.
    • Klicken Sie auf der Randleiste auf Symbol „Neu“ Neu, und wählen Sie im Menü Auftrag aus.
  2. Ersetzen Sie im Aufgabendialogfeld, das auf der Registerkarte Aufgaben angezeigt wird, Namen für Ihren Auftrag hinzufügen… durch den Namen für den Auftrag, z. B. Python wheel example.

  3. Geben Sie unter Aufgabenname einen Namen für die Aufgabe ein, z. B. python_wheel_task.

  4. Wählen Sie unter Typ die Option Python-Wheel aus.

  5. Geben Sie für Paketname den Wert my_test_package ein. Der Wert Paketname ist der Name des zu importierenden Python-Pakets. In diesem Beispiel ist der Paketname der Wert, der dem Parameter name in setup.py zugewiesen ist.

  6. Geben Sie für Einstiegspunkt den Wert run ein. Der Einstiegspunkt ist einer der Werte, die in der Sammlung entry_points im Skript setup.py angegeben sind. In diesem Beispiel ist run der einzige definierte Einstiegspunkt.

  7. Wählen Sie in Compute einen vorhandenen Auftragscluster aus, oder fügen Sie einen neuen Auftragscluster hinzu.

  8. Klicken Sie unter Abhängige Bibliotheken auf Hinzufügen. Ziehen Sie im Dialogfeld Abhängige Bibliothek hinzufügen mit ausgewähltem Arbeitsbereich die in Schritt 4 erstellte my_test_package-0.0.1-py3-none-any.whl-Datei in den Bereich Ablegen des Dialogfelds.

  9. Klicken Sie auf Hinzufügen.

  10. Wählen Sie in der Dropdownliste Parameter die Option Positionsargumente oder Schlüsselwortargumente aus, um den Schlüssel und den Wert jedes Parameters einzugeben. Sowohl positionelle als auch Schlüsselwortargumente werden als Befehlszeilenargumente an die Python-Wheel-Aufgabe übergeben.

    • Zur Eingabe von Positionsargumenten geben Sie die Parameter als JSON-formatiertes Array von Zeichenfolgen ein, zum Beispiel: ["first argument","first value","second argument","second value"].
    • Zur Eingabe von Schlüsselwortargumenten klicken Sie auf + Hinzufügen und geben einen Schlüssel und einen Wert ein. Klicken Sie erneut auf + Hinzufügen, um weitere Argumente einzugeben.
  11. Klicken Sie auf Aufgabe erstellen.

Schritt 6: Ausführen des Auftrags und Anzeigen von Details zur Auftragsausführung

Klicken Sie auf die Schaltfläche „Jetzt ausführen“, um den Workflow auszuführen. Klicken Sie zum Anzeigen von Details zur Ausführung im Popupfenster Ausgelöste Ausführung auf Ausführung anzeigen, oder klicken Sie in der Ansicht Auftragsausführung auf den Link in der Spalte Startzeit für die Ausführung.

Nach Abschluss der Ausführung wird die Ausgabe im Bereich Ausgabe angezeigt, einschließlich der an die Aufgabe übergebenen Argumente.

Nächste Schritte

Weitere Informationen zum Erstellen und Ausführen von Azure Databricks-Aufträgen finden Sie unter Planen und Orchestrieren von Workflows..