在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”,关键=“年龄”,默认的=42,debugValue=0)dbutils.工作.taskValues.得到(taskKey=“Get_user_data”,关键=“名称”,默认的=“简”)
taskKey
设置该值的作业任务的名称。如果命令无法找到此任务,则aValueError
是提高。关键
任务值的键的名称。如果命令无法找到此任务值的键,则aValueError
被提高(除非默认的
指定)。默认的
是返回的可选值,如果关键
找不到。默认的
不能没有一个
.debugValue
是一个可选值,如果试图从运行在作业外部的笔记本中获取任务值,则返回该值。在调试过程中,如果您希望手动运行notebook并返回某个值而不是引发TypeError
默认情况下。debugValue
不能没有一个
.
作为在任务之间共享上下文的一个更复杂的示例,假设您有一个应用程序,其中包括几个机器学习模型,用于预测给定各种个人属性的个人收入,以及一个任务,该任务根据前三个任务的输出确定使用的最佳模型。这些模型由三个任务运行Logistic_Regression
,Decision_Tree
,Random_Forest
,以及Best_Model
Task根据前三个任务的输出确定要使用的最佳模型。
每个模型的准确性(分类器预测收入的好坏)在任务值中传递,以确定表现最好的算法。例如,逻辑回归笔记本与Logistic_Regression
任务包括以下命令:
dbutils.工作.taskValues.集(关键=“model_performance”,价值=结果)
的值model_performance
关键。的Best_Model
Task读取每个任务的值,并使用该值确定最佳模型。属性设置的值Logistic_Regression
任务:
logistic_regression=dbutils.工作.taskValues.得到(taskKey=“Logistic_Regression”,关键=“model_performance”)
查看任务值
若要在任务运行后查看任务值,请执行任务运行历史记录为了这个任务。任务值结果显示在输出面板。