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.
In diesem Artikel wird beschrieben, wie Sie auf Parameterwerte aus Code in Ihren Aufgaben zugreifen, einschließlich Databricks-Notizbücher, Python-Skripts und SQL-Dateien.
Zu den Parametern gehören benutzerdefinierte Parameter, Werte, die aus upstream-Vorgängen ausgegeben werden, und Metadatenwerte, die vom Auftrag generiert werden. Siehe Aufträge parametrisieren.
Während die Details je nach Aufgabentyp variieren, gibt es vier gängige Methoden, mit denen auf Parameterwerte aus dem Quellcode verwiesen wird:
- Databricks-Dienstprogramm-Widgets
- Syntax des benannten SQL-Parameters
- Dynamische Werteverweise
- Codeargumente
In jedem dieser Fälle verweisen Sie auf den Schlüssel des Parameters, um auf seinen Wert zuzugreifen. Der Schlüssel wird manchmal als Name des Parameters bezeichnet.
Verwenden Sie dbutils im Code in einem Notizbuch
Notizbuchcode, der in einer Aufgabe ausgeführt wird, kann auf die Werte von Parametern mit der dbutils-Bibliothek zugreifen. Das folgende Beispiel zeigt, wie Sie in Python verwenden dbutils , um den Wert eines year_param Aufgabenparameters abzurufen, der an die Notizbuchaufgabe übergeben wird.
# Retrieve a job-level parameter
year_value = dbutils.widgets.get("year_param")
# Use the value in your code
display(babynames.filter(babynames.Year == year_value))
Auf Parameter wird anhand des Namens zugegriffen. Wenn Sie Vorgangsparameter und Auftragsparameter haben, die denselben Namen haben, werden die Auftragsparameter abgerufen.
Der obige Code erzeugt einen Fehler, wenn er in einem eigenständigen Notizbuch ausgeführt wird und nicht als Teil eines Auftrags, da Parameter nicht in ein eigenständiges Notizbuch gesendet werden. Sie können einen Standardwert für den year_param Parameter mit dem folgenden Code festlegen:
# Set a default (for when not running in a job)
dbutils.widgets.text("year_param", "2012", "Year Parameter")
# Retrieve a job-level parameter (will use default if it doesn't exist)
year_value = dbutils.widgets.get("year_param")
# Use the value in your code
display(babynames.filter(babynames.Year == year_value))
Dies ist zwar hilfreich für Tests außerhalb eines Auftrags, hat aber auch den Nachteil, dass es nicht sofort ersichtlich ist, wenn Aufgaben- oder Auftragsparameter nicht ordnungsgemäß eingerichtet sind.
Verwenden von benannten Parametern in einem SQL-Notizbuch
Wenn Sie SQL in einer Notizbuchaufgabe ausführen, können Sie die benannte Parametersyntax verwenden, um auf Aufgabenparameter zuzugreifen. Um zum Beispiel auf einen Aufgabenparameter namens year_param zuzugreifen, können Sie dessen Wert mithilfe der Abfrage :year_param abrufen.
SELECT *
FROM baby_names_prepared
WHERE Year_Of_Birth = :year_param
GROUP BY First_Name
Zugriff als Code-Argumente
Bei einigen Vorgangstypen werden Parameter als Argumente an den Code übergeben. Die folgenden Aufgabentypen haben übergebene Argumente:
Python scriptPython WheelJARSpark Submit
Ausführliche Informationen finden Sie unter Details nach Aufgabentyp weiter unten in diesem Artikel.
Bei dbt Aufgaben werden die Parameter übergeben, indem Sie dbt-Befehle in Ihrer Aufgabe aufrufen.
Verwenden von verweisen auf dynamische Werte beim Konfigurieren einer Aufgabe
Wenn Sie eine Aufgabe in der Azure Databricks-Benutzeroberfläche konfigurieren, verwenden Sie die Syntax des dynamischen Wertverweises , um auf Auftragsparameter oder andere dynamische Werte zuzugreifen. Um auf Auftragsparameter zuzugreifen, verwenden Sie die Syntax: {{job.parameters.<name>}}. Wenn Sie beispielsweise eine Python wheel-Aufgabe konfigurieren, können Sie die Schlüssel- und Werte-Eingaben eines Parameters so festlegen, dass sie auf einen sogenannten Job-Parameter namens year_param verweisen, wie year / Year_{{job.parameters.year_param}}. Neben dem Zugriff auf Parameter in der Konfiguration bieten Ihnen dynamische Werte auch Zugang zu weiteren Daten zu Ihrem Job oder Ihrer Aufgabe, z. B. die {{job.id}}. Sie können in die Aufgabenkonfiguration klicken {} , um eine Liste möglicher dynamischer Werte abzurufen und in Ihre Konfiguration einzufügen.
Details nach Aufgabentyp
Welche dieser Methoden sie verwenden, hängt vom Aufgabentyp ab.
| Aufgabentyp | Zugriff in der Konfiguration | Zugriff im Code |
|---|---|---|
| Notizbücher | Sie können dynamische Wertverweise in der Azure Databricks-Benutzeroberfläche verwenden, um das Notizbuch zu konfigurieren (z. B. um auf Auftragsparameter in den Aufgabenparameterwerten zu verweisen). Sie können zusätzliche Parameter außer Kraft setzen oder hinzufügen, wenn Sie eine Aufgabe manuell ausführen, indem Sie den Auftrag mit unterschiedlicher Einstellungsoption ausführen. | Sie können entweder benannte Parameter für SQL in Ihrem Notizbuch oder dbutils.widgets in Ihrem Code verwenden. |
| Python-Skript | Parameter, die in der Aufgabe definiert sind, werden als Argumente an Ihr Skript übergeben. Sie können dynamische Wertverweise im Textfeld "Parameter " verwenden. | Die Parameter können mithilfe des Argparsemoduls in Python als Positionsargumente gelesen oder analysiert werden. |
| Python-Wheel | Parameter, die in der Aufgabendefinition definiert sind, werden als Schlüsselwortargumente an Den Code übergeben. Ihre Python-Raddateien müssen so konfiguriert sein, dass Schlüsselwortargumente akzeptiert werden. Sie können dynamische Wertverweise in den Werten Ihrer Parameter verwenden. | Greifen Sie als Schlüsselwortargumente auf Ihr Skript zu. Ein Beispiel zum Lesen von Argumenten in einem Python-Skript, das in einer Python-Raddatei verpackt ist, finden Sie unter Verwenden einer Python-Raddatei in Lakeflow-Aufträgen. |
| SQL | Sie können dynamische Wertverweise in der Aufgabenkonfiguration verwenden. | Verwenden Sie benannte Parameter, um auf Parameterwerte zuzugreifen. |
| Rohrleitung | Pipelines unterstützen nicht das Übergeben von Parametern an eine Aufgabe. | Nicht unterstützt. |
| Instrumententafel | Dashboardaufgaben unterstützen das Übergeben von Parametern an den Vorgang nicht. | Nicht unterstützt. |
| Power BI | Power BI-Aufgaben unterstützen das Übergeben von Parametern an den Vorgang nicht. | Nicht unterstützt. |
| dbt | Sie können dynamische Wertverweise verwenden, um Parameter als dbt Befehle beim Konfigurieren der Aufgabe zu übergeben. |
Zugriff als dbt Befehle. |
| GLAS | Sie können dynamische Wertverweise verwenden, um Parameter als Argumente im Textfeld "Parameter " beim Konfigurieren der Aufgabe zu übergeben. | Auf Parameter wird als Argumente für die Hauptmethode der Hauptklasse zugegriffen. |
| Spark-Submit | Sie können dynamische Wertverweise verwenden, um Parameter als Argumente im Textfeld "Parameter " beim Konfigurieren der Aufgabe zu übergeben. | Auf Parameter wird als Argumente für die Hauptmethode der Hauptklasse zugegriffen. |
| Auftrag ausführen | Sie können dynamische Wertverweise verwenden, um eine Reihe von Auftragsparametern zu erstellen, wenn Sie Ihre Aufgabe konfigurieren. Die Werte können dynamische Wertverweise enthalten. | Nicht zutreffend. |
| If/Else-Bedingung | Sie können dynamische Wertverweise verwenden, wenn Sie Ihre Aufgabe konfigurieren, z. B. in der Bedingung. | Nicht zutreffend. |
| Für jedes | Sie können dynamische Wertverweise verwenden, wenn Sie die Eingaben für Ihre Aufgabe konfigurieren. Der geschachtelte Vorgang empfängt eine Eingabe als Vorgangsparameter für jede Iteration des geschachtelten Vorgangs. | Geschachtelte Aufgaben greifen basierend auf dem Aufgabentyp auf Parameter zu. |
| Notizbuch "Raum bereinigen" | Sie können dynamische Wertverweise in der Azure Databricks-Benutzeroberfläche verwenden, um das Notizbuch zu konfigurieren (z. B. um auf Auftragsparameter in den Aufgabenparameterwerten zu verweisen). | Sie können entweder benannte Parameter für SQL in Ihrem Notizbuch oder dbutils.widgets in Ihrem Code verwenden. |