控制 Databricks 作业中的任务流

某些作业只是需要完成的任务列表。 可以通过指定任务之间的依赖关系来控制任务的执行顺序。 可以将任务配置为按顺序或并行运行。

但是,还可以创建包含条件任务、错误更正或清理的分支流。 Azure Databricks 提供用于控制作业中任务流的功能。 以下主题介绍了可以控制任务流的方法。

重试

重试指定当任务失败并显示错误消息时,应重新运行特定任务的次数。 错误通常是暂时性的,可通过重启来解决。 Azure Databricks 上的一些功能(如结构化流式处理中的架构演变)假设你通过重试来运行作业,以重置环境并使工作流能够继续进行。

如果为任务指定重试,则任务在遇到错误时最多会重启指定的次数。 并非所有作业配置都支持任务重试。 请参阅 设置重试策略

在连续触发器模式下运行时,Databricks 会按指数退避自动重试。 请参阅 如何为连续作业处理故障?

如果是条件任务,则运行

你可以使用“Run if”任务类型基于其他任务的结果为后续任务指定条件。 将任务添加到作业并指定依赖于上游的任务。 根据这些任务的状态,可以配置一个或多个要运行的下游任务。 作业支持以下依赖项:

  • 全部成功
  • 至少有一个成功了
  • 没有一个失败
  • 全部完成
  • 至少一个失败
  • 全都失败了

请参阅 配置任务依赖项

If/else 条件任务

可以使用 If/else 任务类型根据某些值指定条件。 请参阅 ,通过 If/else 任务为作业添加分支逻辑。

作业支持在逻辑中定义的 taskValues,并允许将某些计算或状态的结果从任务返回到作业环境。 可以定义针对 taskValues、作业参数或动态值的 If/else 条件。

Azure Databricks 支持以下条件操作数:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

另请参阅:

对于每个任务

使用 For each 任务在循环中运行另一个任务,将一组不同的参数传递给任务的每个迭代。

若要向作业添加 For each 任务,必须定义 For each 任务和 嵌套任务。 嵌套任务是针对 For each 任务的每个迭代运行的任务,是标准 Databricks 任务类型之一。 支持使用多种方法将参数传递给嵌套任务。

请参阅在循环中运行参数化 Azure Databricks 作业任务