在迴圈中執行參數化 Azure Databricks 工作任務
本文討論搭配 For each
Azure Databricks 作業使用工作,包括在作業 UI 中新增和設定工作的詳細資料。 使用 For each
工作在迴圈中執行另一個工作,將一組不同的參數傳遞至工作的每個反覆項目。
將 For each
工作新增至作業需要定義兩個工作:For each
工作和巢狀工作。 巢狀工作是針對 For each
工作的每個反覆項目執行的工作,而且是其中一個標準 Azure Databricks 作業工作類型。 您無法將另一個 For each
工作新增為巢狀工作。
例如,您可以使用 For each
工作在多個資料表上執行一組常見的轉換,將資料表名稱從資料表名稱清單傳遞至工作的每個反覆項目。
我可以搭配 For each
工作使用哪些參數類型?
若要從 For each
工作傳遞參數,您可以:
- 當您建立或編輯工作時,請定義 JSON 格式的集合。
- 使用從前一個工作傳遞的工作值。 若要深入瞭解工作值,請參閱使用工作值在工作之間傳遞資訊。
- 使用參數。 若要深入瞭解作業參數,請參閱設定作業參數。
若要瞭解如何在新增或編輯 For each
工作時使用這些不同的參數類型,請參閱下一節將針對每個工作新增至作業。
將 For each
工作新增至作業
您可以在建立作業或編輯現有作業中的工作時新增 For each
工作。 若要設定 For each
工作:
在 [類型] 下拉式功能表中,選取 [針對每個]。
在 [工作名稱] 欄位中,輸入工作的名稱。
在 [輸入] 文字方塊中,定義要反覆運算之
For each
工作的值。 這個權限可以是下列其中一項:JSON 格式化的值陣列。 這可以是下列資料類型的陣列:
- 索引鍵/值組
- 字串、數字或布林值類型
- 任意複合的 JSON 物件
工作值參考。 若要參考從上述工作傳遞的工作值,請使用
{{tasks.<task_name>.values.<task_value_name>}}
語法在 [輸入] 文字方塊中設定值。 例如,如果generate_countries_list
工作前面名為For each
的工作設定下列工作值:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
然後
For each
工作會使用下列語法,在 [輸入] 文字方塊中參考工作值:{{tasks.generate_countries_list.values.countries}}
.作業參數。 若要參考作業參數,請在 [輸入] 文字方塊中使用下列語法:
{{job.parameters.<name>}}
。 例如:{{job.parameters.countries}}
。
若要選擇性地設定可以並列執行的反覆項目數目,請輸入工作的 [並行] 值。 預設值是 1秒。
若要選擇性地接收工作開始、成功或失敗的通知,請按下 [+ 新增]。 請參閱新增工作事件的電子郵件和系統通知。
若要完成
For each
工作的設定,並新增巢狀工作以針對每個反覆項目執行,請按下 [新增要循環執行的工作]。選取巢狀工作的工作類型和組態選項。 巢狀工作是標準工作類型,而且具有相同的組態選項。 請參閱設定和編輯 Databricks 工作。
若要參考從
For each
工作傳遞的參數,請按下 [參數]。 使用{{input}}
參考將該值設定為每個反覆項目的陣列值,或{{input.<key>}}
,以在您逐一查看物件清單時參考個別物件欄位。按一下 [建立工作]。
在 For each
工作與巢狀工作之間切換
For each
工作會顯示在 [作業 UI] 中,做為節點內巢狀工作節點的 For each
節點。 若要在 For each
工作與巢狀工作之間切換,請按下個別節點。
參考下游工作中的 For each
工作
For each
工作是最上層工作,下游工作可以將它指定為相依性。 下游工作不能相依或參考巢狀工作。
使用 For each
工作執行和監視作業
執行具有 For each
工作的作業,與執行任何其他作業相同。
檢視和管理作業執行也與任何其他作業相同,但 For each
工作的工作執行歷程記錄會呈現為工作反覆項目資料表。 請參閱檢視針對每個工作的工作執行歷程記錄。