我们如何访问附加笔记本内的数据块作业参数?

San*_*x19 7 amazon-web-services databricks dbutils aws-databricks databricks-workflows

在 Databricks 中,如果我的作业请求 json 为:

{
  "job_id": 1,
  "notebook_params": {
    "name": "john doe",
    "age": "35"
  }
}
Run Code Online (Sandbox Code Playgroud)

如何访问作业附加笔记本内的笔记本参数?

Ale*_*Ott 13

在笔记本中,您可以使用dbutils.widgets.get 函数通过小部件访问参数。对于您的示例,它将是:

name = dbutils.widgets.get("name")
age = dbutils.widgets.get("age")
Run Code Online (Sandbox Code Playgroud)

请注意,默认情况下该值是字符串,因此如果您需要age数字,则需要将其转换。

另外,如果您想在将输出作为作业之前对其进行调试,那么您需要使用其中一个函数声明相应的小部件dbutils.widgets否则在执行操作时您会收到“未定义小部件”的错误dbutils.widgets.get。例如,您可以使用dbutils.widgets.text允许输入任何文本):

dbutils.widgets.text("name", "<default_name>", "Enter name")
dbutils.widgets.text("name", "<default_age>", "Enter age")
Run Code Online (Sandbox Code Playgroud)