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
undsetuptool
. Sie können diese Pakete mitpip
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.
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' ] )
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
Wechseln Sie zu Ihrer Azure Databricks-Zielseite, und führen Sie einen der folgenden Schritte aus:
- Klicken Sie auf der Randleiste auf Workflows und dann auf .
- Klicken Sie auf der Randleiste auf Neu, und wählen Sie im Menü Auftrag aus.
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
.Geben Sie unter Aufgabenname einen Namen für die Aufgabe ein, z. B.
python_wheel_task
.Wählen Sie unter Typ die Option Python-Wheel aus.
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 Parametername
insetup.py
zugewiesen ist.Geben Sie für Einstiegspunkt den Wert
run
ein. Der Einstiegspunkt ist einer der Werte, die in der Sammlungentry_points
im Skriptsetup.py
angegeben sind. In diesem Beispiel istrun
der einzige definierte Einstiegspunkt.Wählen Sie in Compute einen vorhandenen Auftragscluster aus, oder fügen Sie einen neuen Auftragscluster hinzu.
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.Klicken Sie auf Hinzufügen.
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.
- Zur Eingabe von Positionsargumenten geben Sie die Parameter als JSON-formatiertes Array von Zeichenfolgen ein, zum Beispiel:
Klicken Sie auf Aufgabe erstellen.
Schritt 6: Ausführen des Auftrags und Anzeigen von Details zur Auftragsausführung
Klicken Sie auf die , 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..