如何使用参数创建数据块作业

Mor*_*esh 2 python pyspark databricks azure-databricks databricks-cli

我正在使用 databricks-cli 在 databricks 中创建一个新作业:

databricks jobs create --json-file ./deploy/databricks/config/job.config.json
Run Code Online (Sandbox Code Playgroud)

使用以下 json:

{
    "name": "Job Name",
    "new_cluster": {
        "spark_version": "4.1.x-scala2.11",
        "node_type_id": "Standard_D3_v2",
        "num_workers": 3,
        "spark_env_vars": {
            "PYSPARK_PYTHON": "/databricks/python3/bin/python3"
        }
    },
    "libraries": [
        {
            "maven": {
                "coordinates": "com.microsoft.sqlserver:mssql-jdbc:6.5.3.jre8-preview"
            }
        }
    ],
    "timeout_seconds": 3600,
    "max_retries": 3,
    "schedule": {
        "quartz_cron_expression": "0 0 22 ? * *",
        "timezone_id": "Israel"
    },
    "notebook_task": {
        "notebook_path": "/notebooks/python_notebook"
    }
}
Run Code Online (Sandbox Code Playgroud)

我想添加可通过以下方式在笔记本中访问的参数:

dbutils.widgets.text("argument1", "<default value>")
dbutils.widgets.get("argument1")
Run Code Online (Sandbox Code Playgroud)

Mor*_*esh 5

经过一些调整后找到了答案,您可以简单地将notebook_task属性扩展为包括base_parameters如下:

{
    "notebook_task": {
        "notebook_path": "/social/04_batch_trends",
        "base_parameters": {           
            "argument1": "value 1",
            "argument2": "value 2"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这在 Jobs API的Create 方法中有记录。它列出了notebook_task参数,它可以是NotebookTask类型。