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

Databricks作业运行失败后如何从断点续跑而无需重新执行所有前置命令

Databricks作业断点续跑实现方案

适用前置条件

你已手动创建缺失的目标存储文件夹,原失败原因已排除。


方法1:多任务作业直接重跑失败任务(最优方案,适用于作业已拆分为多独立任务的场景)

如果你的作业按逻辑拆分为了多个独立任务(前置计算任务、末尾结果写入任务为不同的任务节点),操作如下:

  • 进入对应作业的失败运行详情页
  • 点击右上角重新运行下拉选项,选择重新运行失败的任务
  • Databricks会自动跳过所有已执行成功的上游任务,直接从失败的写入任务开始执行

方法2:单Notebook多命令场景的断点实现

如果你的所有作业逻辑都写在同一个Notebook内,可通过以下两种方式实现:

方式A:代码加执行状态标记(适合生产作业常态化配置)

在代码中增加执行状态持久化逻辑,每次运行自动跳过已完成的步骤:

  1. 为每个逻辑步骤配置唯一的状态标记,步骤执行成功后将标记写入DBFS或指定存储路径:
# 示例:步骤1执行完成后写入成功标记
dbutils.fs.put("/your_custom_path/job_marks/step_calc_success", "", overwrite=True)
  1. 每个步骤执行前先判断对应标记是否存在,存在则直接跳过:
try:
    dbutils.fs.ls("/your_custom_path/job_marks/step_calc_success")
except:
    # 标记不存在时执行对应步骤逻辑
    your_calculation_logic()
    # 执行完成写入成功标记
    dbutils.fs.put("/your_custom_path/job_marks/step_calc_success", "", overwrite=True)
  1. 问题修复后重新运行整个Notebook即可,已完成的步骤会自动跳过,直接运行到之前失败的写入步骤。

方式B:手动指定起始执行位置(适合临时一次性重跑)

如果不需要长期配置断点逻辑,仅本次临时重跑,可直接操作:

  • 打开作业对应的Notebook,确认集群未被释放、前面步骤的执行结果和中间缓存未丢失
  • 找到失败的写入命令的前一个命令,点击该命令右侧的运行以下所有按钮,即可直接执行该命令之后的所有内容,无需重跑前面已成功的步骤。

注意事项

  • 如果作业运行的集群已经被关停,内存中缓存的中间计算结果会被清空,该场景下无法断点续跑,只能重新执行全部计算逻辑
  • 状态标记文件不要存放在系统临时目录下,避免被自动清理导致状态丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:15:03