共用方式為


從工作存取參數值

本文說明如何從工作中的程式代碼存取參數值,包括 Databricks 筆記本、Python 腳本和 SQL 檔案。

參數包括使用者定義參數、上游工作輸出的值,以及作業所產生的元數據值。 請參閱參數化作業

雖然詳細數據會因 工作類型而有所不同,但有四種常見方法可用來從原始碼參考參數值:

在這些情況下,您會引用參數的鍵來存取其值。 鍵有時被稱為參數名稱。

請在筆記本程式碼中使用dbutils

在工作中執行的筆記本程序代碼可以使用 dbutils 鏈接庫存取參數的值。 在以下範例中,展示如何在 Python 中使用 dbutils 來取得傳入筆記本任務的任務參數值 year_param

# 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))

參數依名稱存取。 如果您有具有相同名稱的工作參數和作業參數,則會擷取作業參數。

上述程式代碼會在獨立筆記本中執行,而不是當做作業的一部分執行時產生錯誤,因為參數不會傳送到獨立筆記本中。 您可以使用下列程式代碼來設定 year_param 參數的預設值:

# 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))

雖然這有助於在工作之外進行測試,但它也有一個缺點,即當任務或工作參數未正確設定時,問題會被隱藏起來。

在 SQL 筆記本中使用具名參數

當您在筆記本工作中執行 SQL 時,可以使用 具名參數 語法來存取工作參數。 例如,若要存取名為year_param的工作參數,您可以在查詢中使用:year_param來取得其值。

SELECT *
FROM baby_names_prepared
WHERE Year_Of_Birth = :year_param
GROUP BY First_Name

以程式碼作為參數存取

對於某些工作類型參數,會以自變數的形式傳遞至程序代碼。 下列任務類型具有傳遞給它們的參數:

  • Python script
  • Python Wheel
  • JAR
  • Spark Submit

如需詳細資訊,請參閱本文稍後 依工作類型的詳細數據。

針對 dbt 工作,參數會藉由呼叫工作中的 dbt 命令來傳遞。

設定工作時使用動態值參考

當您在 Azure Databricks UI 中設定工作時,請使用 動態值參考 語法來存取作業參數或其他動態值。 若要存取作業參數,請使用語法: {{job.parameters.<name>}}。 例如,設定工作 Python wheel 時,您可以設定參數的 KeyValue 輸入,以參考稱為 year_param的 Job 參數,例如 year / Year_{{job.parameters.year_param}}。 除了在組態中提供參數的存取,動態值也可讓您存取作業或工作的其他資料,例如 {{job.id}}。 您可以按下 {} 工作組態以取得可能的動態值清單,並將其插入您的設定中。

依工作類型的詳細數據

您使用的其中哪一種方法取決於工作類型。

工作類型 設定中的存取 在程式代碼中存取
筆記本 您可以在 Azure Databricks UI 中使用動態值參考來設定筆記本(例如,若要參考工作參數值中的作業參數)。 當您使用 使用不同設定執行作業 選項手動執行作業時,可以覆寫或新增其他參數。 您可以在筆記本中使用 SQL 的具名參數或在程式代碼中使用 dbutils.widgets
Python 指令碼 工作中定義的參數會當做自變數傳遞至您的腳本。 您可以在 [ 參數 ] 文字框中使用動態值參考。 參數可以讀取為位置自變數,或使用 Python 中的 argparse 模組剖析。
Python Wheel 工作定義中定義的參數會當做關鍵詞自變數傳遞至您的程序代碼。 您的 Python 轉輪檔案必須設定為接受關鍵詞自變數。 您可以在參數的值中使用動態值參考。 以關鍵字參數的形式存取您的腳本。 若要查看在 Python 轉輪檔案中封裝的 Python 腳本中讀取自變數的範例,請參閱 在 Lakeflow 作業中使用 Python 滾輪檔案
SQL 您可以在工作設定中使用動態值參考。 使用具名參數來存取參數值。
管線 管線不支援將參數傳遞到任務。 不支援。
儀表板 儀錶板任務不支援將參數傳遞給任務。 不支援。
Power BI Power BI 工作不支援將參數傳遞至工作。 不支援。
dbt 您可以在設定工作時,使用動態值參考將參數當做 dbt 命令傳遞。 使用dbt命令進行存取。
您可以在設定工作時,使用動態值參考,將參數當做自變數傳遞至 [ 參數 ] 文本框中。 參數會當做主類別之main方法的自變數來存取。
Spark 提交 您可以在設定工作時,使用動態值參考,將參數當做自變數傳遞至 [ 參數 ] 文本框中。 參數會作為傳遞給主類別中 main 方法的引數來存取。
執行作業 您可以在設定工作時,使用動態值參考來建立一組 作業參數 。 這些值可以包含動態值參考。 不適用。
If/else 條件 您可以在設定工作時使用動態值參考,例如,在 Condition 中。 不適用。
針對每個 在設定您工作中的 輸入 時,可以使用動態值來進行參考。 巢狀工作在每次反覆執行時會接收一個輸入作為任務參數。 巢狀工作會根據工作類型存取參數。
乾淨的房間筆記本 您可以在 Azure Databricks UI 中使用動態值參考來設定筆記本(例如,若要參考工作參數值中的作業參數)。 您可以在筆記本中使用 SQL 的具名參數或在程式代碼中使用 dbutils.widgets