Databricks CLI 0.209重置作业报错:已传new_cluster仍提示需指定集群参数
解决Databricks CLI 0.209版本重置AWS作业的集群参数错误问题
问题原因
Databricks CLI v0.200+ 基于REST API 2.1重构了jobs reset命令的参数逻辑:
- 不再支持旧版本的
--job-id独立参数,必须将job_id包含在提交的JSON payload的顶层结构中 - 若提交的JSON仅包含
settings部分,或者集群配置字段(new_cluster/job_cluster_key/existing_cluster_id)的层级或内容不符合API要求,就会触发该错误
解决步骤
导出目标作业的完整配置
先获取现有作业的完整JSON结构,确保包含job_id和所有必填字段:databricks jobs get --job-id xxxx --profile DEFAULT > full_job_config.json这个文件的顶层结构会包含
job_id、settings等核心字段,其中settings内已经包含原有的集群配置(new_cluster或其他)。修改作业配置
编辑full_job_config.json,更新你需要调整的部分(比如new_cluster的实例类型、Spark版本,或者任务脚本路径等),注意:- 不要删除顶层的
job_id字段 - 确保
settings下保留且正确配置new_cluster/job_cluster_key/existing_cluster_id三者之一(如果是用作业集群,要确保job_clusters数组里有对应key的定义)
- 不要删除顶层的
执行重置命令
使用修改后的完整配置文件执行重置:databricks jobs reset --json @full_job_config.json --profile DEFAULT若使用内联字符串,需传递完整的JSON(包含
job_id和正确的集群配置),示例:databricks jobs reset --json '{"job_id": xxxx, "settings": {"new_cluster": {"spark_version": "13.3.x-scala2.12", "node_type_id": "m5.xlarge", "num_workers": 2}, "tasks": [{"task_key": "task1", "spark_python_task": {"python_file": "/path/to/script.py"}}]}}' --profile DEFAULT
关键注意事项
- 确认JSON中
job_id的值与目标作业ID完全一致 - 检查
new_cluster的必填字段是否齐全:spark_version、node_type_id是必须的,按需配置num_workers或autoscale - 若使用现有集群,需确保
existing_cluster_id是有效的集群ID,且集群处于运行状态
内容的提问来源于stack exchange,提问作者Dhinesh
相关产品推荐
相关产品推荐

