共用方式為


在 Azure Databricks 作業中共用工作之間的資訊

您可以使用 工作值 ,在 Azure Databricks 作業中的工作之間傳遞任意參數。 您可以使用 Databricks Utilities 中的 taskValues 子公用程式 來傳遞工作值 。 taskValues 子公用程式提供簡單的 API,可讓工作輸出可在後續工作中參考的值,讓您更輕鬆地建立更具表現力的工作流程。 例如,您可以在作業執行內的不同工作之間傳達識別碼或計量,例如機器學習模型評估的相關資訊。 每個工作都可以設定並取得多個工作值。 您可以在 Python 筆記本中設定和擷取工作值。

注意

您現在可以在筆記本中使用 動態值參考 ,參考上游工作中設定的工作值。 例如,若要使用工作所設定的 Get_user_data 索引鍵 name 來參考 值,請使用 {{tasks.Get_user_data.values.name}} 。 由於它們可以與多個工作類型搭配使用,Databricks 建議使用動態值參考,而不是 dbutils.jobs.taskValues.get 以程式設計方式擷取工作值。

使用工作值

taskValues 子公用程式提供兩個命令: dbutils.jobs.taskValues.set() 設定變數和 dbutils.jobs.taskValues.get() 擷取值。 假設您有兩個筆記本工作: Get_user_data 以及 Analyze_user_data 想要將使用者的名稱和年齡從 Get_user_data 工作傳遞至工作 Analyze_user_data 。 下列範例會設定工作中使用者的名稱和年齡 Get_user_data

dbutils.jobs.taskValues.set(key = 'name', value = 'Some User')
dbutils.jobs.taskValues.set(key = "age", value = 30)
  • key 是工作值索引鍵的名稱。 此名稱對工作而言必須是唯一的。
  • value 是此工作值索引鍵的值。 此命令必須能夠以 JSON 格式在內部表示值。 值的 JSON 表示大小不能超過 48 KiB。

下列範例接著會取得工作中的值 Analyze_user_data

dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "age", default = 42, debugValue = 0)
dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "name", default = "Jane Doe")
  • taskKey 是工作工作設定值的名稱。 如果命令找不到此工作, ValueError 則會引發 。
  • key 是工作值索引鍵的名稱。 如果命令找不到此工作值的索引鍵, ValueError 則會引發 (除非 default 指定 )。
  • default 如果找不到,則為傳 key 回的選擇性值。 default 不可以是 None
  • debugValue 是選擇性值,如果您嘗試從在作業外部執行的筆記本內取得工作值,則會傳回這個值。 當您想要手動執行筆記本並傳回某些值,而不是預設引發 TypeError 時,這在偵錯期間很有用。 debugValue 不可以是 None

作為在工作之間共用內容更複雜的範例,假設您有一個應用程式,其中包含數個機器學習模型來預測個人收入的各種個人屬性,以及決定根據前三個工作的輸出使用的最佳模型。 模型是由三個名為 Logistic_RegressionDecision_TreeRandom_Forest 的工作來執行,而工作 Best_Model 會根據前三個工作的輸出決定要使用的最佳模型。

Graph of example classification application

每個模型的精確度(分類器預測收入的精確度)都會傳入工作值,以判斷最佳執行演算法。 例如,與 Logistic_Regression 工作相關聯的羅吉斯回歸筆記本包含下列命令:

dbutils.jobs.taskValues.set(key = "model_performance", value = result)

每個模型工作都會設定 model_performance 索引鍵的值。 工作 Best_Model 會讀取每個工作的值,並使用該值來判斷最佳模型。 下列範例會讀取工作所 Logistic_Regression 設定的值:

logistic_regression = dbutils.jobs.taskValues.get(taskKey = "Logistic_Regression", key = "model_performance")

檢視工作值

若要在工作執行之後檢視工作值的值,請移至 工作的工作執行歷程記錄 。 工作值結果會顯示在 [輸出 ] 面板中。