從工作存取參數值

存取參數值來自你的任務程式碼,包括 Azure Databricks 筆記本、Python 腳本和 SQL 檔案。

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

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

在這些情況下,你都會參考參數的鍵來取得它的值。 鍵有時被稱為參數名稱。

若想了解如何在使用SQL任務與For each任務的元資料驅動工作中應用這些技術,請參見使用控制表驅動工作For each。

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

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

from pyspark.sql.functions import year

# Retrieve the job-level parameter
year_value = dbutils.widgets.get("year_param")

# Use the value to filter bookings by check-in year
display(spark.read.table("samples.wanderbricks.bookings").filter(year("check_in") == year_value))

參數依名稱存取。 如果工作參數與任務參數共用鍵,則工作參數優先。 請參閱工作參數下推。

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

from pyspark.sql.functions import year

# Set a default for when the notebook runs outside a job
dbutils.widgets.text("year_param", "2025", "Year Parameter")

# Retrieve the parameter, falling back to the default if it isn't set
year_value = dbutils.widgets.get("year_param")

display(spark.read.table("samples.wanderbricks.bookings").filter(year("check_in") == year_value))

雖然這有助於在工作外測試,但同時也能掩蓋錯誤設定的任務或工作參數。

在 SQL 中使用命名參數

當你在筆記本或管線任務中執行 SQL 時,可以使用 命名的參數 語法來取得任務參數。 例如,若要取得名為 year_param 的任務參數,你可以在查詢中使用 :year_param 來取得其值:

SELECT year(check_in) AS year_of_stay, count(*) AS bookings, round(avg(total_amount), 2) AS avg_amount
FROM samples.wanderbricks.bookings
WHERE year(check_in) = :year_param
GROUP BY year(check_in)

以程式碼作為參數存取

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

  • Python script
  • Python Wheel
  • JAR
  • Spark Submit

詳情請見本頁後面的 「依任務類型的詳情」。

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

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

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

依工作類型的詳細數據

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

工作類型 在設定中擷取 在程式碼中檢索
筆記本 你可以在 Azure Databricks UI 中使用動態值參考來設定筆記本(例如,在任務參數值中參考工作參數)。 當您使用 使用不同設定執行作業 選項手動執行作業時,可以覆寫或新增其他參數。 您可以在筆記本中使用 SQL 的具名參數或在程式代碼中使用 dbutils.widgets。
Python 指令碼 工作中定義的參數會當做自變數傳遞至您的腳本。 您可以在 [ 參數 ] 文字框中使用動態值參考。 參數可讀取為位置參數,或使用 Python 中的 argparse 模組進行解析。
Python Wheel 工作定義中定義的參數會當做關鍵詞自變數傳遞至您的程序代碼。 你的 Python 輪盤檔案必須設定成接受關鍵字參數。 您可以在參數的值中使用動態值參考。 以關鍵字參數的形式存取您的腳本。 若想查看如何在 Python 彙整檔中讀取 Python 腳本中的參數,請參見 使用 Python 彙整檔於 Lakeflow Jobs 中。
SQL 您可以在工作設定中使用動態值參考。 使用命名參數來取得參數值。
管線 (參數仍處於 Beta 階段) 您可以在設定工作時,使用動態值參考,將參數當做自變數傳遞至 [ 參數 ] 文本框中。 使用命名參數來取得參數值。
儀表板 你可以在任務中設定 儀表板篩選器 ,預先套用篩選器值。 如果篩選器的 URL 識別 碼與工作層級參數鍵符相符,任務會自動將該參數值套用到篩選器上。 不適用。
Power BI Power BI 任務不支援將參數傳給任務。 不支援。
dbt 您可以在設定工作時,使用動態值參考將參數當做 dbt 命令傳遞。 使用dbt命令進行存取。
瓶 您可以在設定工作時,使用動態值參考,將參數當做自變數傳遞至 [ 參數 ] 文本框中。 參數會當做主類別之main方法的自變數來存取。
Spark 提交 您可以在設定工作時,使用動態值參考,將參數當做自變數傳遞至 [ 參數 ] 文本框中。 參數會作為傳遞給主類別中 main 方法的引數來存取。
執行作業 您可以在設定工作時,使用動態值參考來建立一組 作業參數 。 這些值可以包含動態值參考。 不適用。
If/else 條件 您可以在設定工作時使用動態值參考,例如,在 Condition 中。 不適用。
針對每個 在設定您工作中的 輸入 時,可以使用動態值來進行參考。 巢狀工作在每次反覆執行時會接收一個輸入作為任務參數。 巢狀任務會根據任務類型擷取參數。
乾淨的房間筆記本 你可以在 Azure Databricks UI 中使用動態值參考來設定筆記本(例如,在任務參數值中參考工作參數)。 您可以在筆記本中使用 SQL 的具名參數或在程式代碼中使用 dbutils.widgets。