You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Databricks Jobs提交失败:JSON格式错误如何修正?

解决Databricks Jobs JSON提交格式错误问题

错误原因分析

你遇到的两个错误均为JSON格式不合法导致:JSON要求对象键必须用双引号包裹,且字符串转义规则严格。出现'r'或't'的报错,大概率是PowerShell处理JSON字符串时,引号未正确转义,或是变量插入后破坏了JSON结构(比如变量值包含未转义的特殊字符)。

正确的JSON模板(适配Databricks CLI v0.221.0)

以下是提交Notebook任务的标准合法JSON格式,可基于此调整:

{
  "name": "Run-Notebook-Job",
  "tasks": [
    {
      "task_key": "Notebook-Task",
      "notebook_task": {
        "notebook_path": "/Workspace/Path/To/Your/Notebook",
        "base_parameters": {
          "param1": "value1",
          "param2": "value2"
        }
      },
      "new_cluster": {
        "spark_version": "13.3.x-scala2.12",
        "node_type_id": "Standard_DS3_v2",
        "num_workers": 1
      }
    }
  ]
}

PowerShell中提交的关键注意事项

  1. 引号转义处理
    在PowerShell中,推荐用单引号包裹整个JSON字符串,避免自动变量解析和双引号转义问题:

    $jsonPayload = '{
      "name": "Run-Notebook-Job",
      "tasks": [
        {
          "task_key": "Notebook-Task",
          "notebook_task": {
            "notebook_path": "/Workspace/Path/To/Your/Notebook",
            "base_parameters": {
              "param1": "value1",
              "param2": "value2"
            }
          },
          "new_cluster": {
            "spark_version": "13.3.x-scala2.12",
            "node_type_id": "Standard_DS3_v2",
            "num_workers": 1
          }
        }
      ]
    }'
    
    # 提交任务
    databricks jobs create --json $jsonPayload
    
  2. 变量插入的正确方式
    若需插入PowerShell变量,不要直接拼接字符串,应先构建PS对象再转为JSON,自动处理格式问题:

    $notebookPath = "/Workspace/My/Target/Notebook"
    $clusterNodeType = "Standard_DS3_v2"
    
    $jobDefinition = [PSCustomObject]@{
      name = "Run-Notebook-Job"
      tasks = @(
        [PSCustomObject]@{
          task_key = "Notebook-Task"
          notebook_task = [PSCustomObject]@{
            notebook_path = $notebookPath
            base_parameters = [PSCustomObject]@{
              env = "production"
            }
          }
          new_cluster = [PSCustomObject]@{
            spark_version = "13.3.x-scala2.12"
            node_type_id = $clusterNodeType
            num_workers = 1
          }
        }
      )
    }
    
    $jsonPayload = $jobDefinition | ConvertTo-Json -Depth 10
    databricks jobs create --json $jsonPayload
    
  3. 提前验证JSON合法性
    提交前可通过以下命令验证JSON格式是否正确,避免无效提交:

    $jsonPayload | ConvertFrom-Json -ErrorAction Stop
    

    无报错则说明JSON格式合法。

常见排查点

  • 确认所有对象键均用双引号包裹(JSON不允许单引号作为键的包裹符)
  • 检查字符串中的特殊字符(如引号、反斜杠)是否已正确转义
  • 确保变量值中无意外换行或控制字符,这类字符会破坏JSON结构

内容的提问来源于stack exchange,提问作者DanteeChaos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 07:18:20