在Databricks作业中的任务之间共享信息

你可以使用任务值在Databricks作业中的任务之间传递任意参数。方法传递任务值taskValues subutility在Databricks Utilities。taskValues子功能提供了一个简单的API,允许任务输出可以在后续任务中引用的值,从而更容易创建更具表现力的工作流。例如,您可以在作业运行中的不同任务之间传递标识符或度量,例如关于机器学习模型评估的信息。每个任务可以设置和获取多个任务值。任务值可以在Python笔记本中设置和检索。

使用任务值

taskValues子函数提供了两个命令:dbutils.jobs.taskValues.set ()设置一个变量和dbutils.jobs.taskValues.get ()检索一个值。假设你有两个笔记本任务:Get_user_data而且Analyze_user_data对象中传递用户的姓名和年龄Get_user_data任务。Analyze_user_data的任务。属性中设置用户的名称和年龄Set_user_data任务:

dbutils工作taskValues关键“名字”价值一些用户的dbutils工作taskValues关键“年龄”价值30.
  • 关键任务值键的名称。此名称对于任务必须是唯一的。

  • 价值此任务值的键的值。该命令必须能够在内部以JSON格式表示值。值的JSON表示的大小不能超过48 KiB。

属性中的值,然后,下面的示例获取Analyze_user_data任务:

dbutils工作taskValues得到taskKey“Get_user_data”关键“年龄”默认的42debugValue0dbutils工作taskValues得到taskKey“Get_user_data”关键“名称”默认的“简”
  • taskKey设置该值的作业任务的名称。如果命令无法找到此任务,则aValueError是提高。

  • 关键任务值的键的名称。如果命令无法找到此任务值的键,则aValueError被提高(除非默认的指定)。

  • 默认的是返回的可选值,如果关键找不到。默认的不能没有一个

  • debugValue是一个可选值,如果试图从运行在作业外部的笔记本中获取任务值,则返回该值。在调试过程中,如果您希望手动运行notebook并返回某个值而不是引发TypeError默认情况下。debugValue不能没有一个

作为在任务之间共享上下文的一个更复杂的示例,假设您有一个应用程序,其中包括几个机器学习模型,用于预测给定各种个人属性的个人收入,以及一个任务,该任务根据前三个任务的输出确定使用的最佳模型。这些模型由三个任务运行Logistic_RegressionDecision_Tree,Random_Forest,以及Best_ModelTask根据前三个任务的输出确定要使用的最佳模型。

分类应用实例图

每个模型的准确性(分类器预测收入的好坏)在任务值中传递,以确定表现最好的算法。例如,逻辑回归笔记本与Logistic_Regression任务包括以下命令:

dbutils工作taskValues关键“model_performance”价值结果

的值model_performance关键。的Best_ModelTask读取每个任务的值,并使用该值确定最佳模型。属性设置的值Logistic_Regression任务:

logistic_regressiondbutils工作taskValues得到taskKey“Logistic_Regression”关键“model_performance”

查看任务值

若要在任务运行后查看任务值,请执行任务运行历史记录为了这个任务。任务值结果显示在输出面板。