【问题标题】:Azure Data Factory: Get the result of a query on the databricks notebook to create a conditionAzure 数据工厂:获取数据块笔记本上的查询结果以创建条件
【发布时间】:2022-08-30 17:57:15
【问题描述】:

我希望对 databricks 笔记本的查询结果是管道的成功或失败条件,以重新处理例如 azure 数据工厂中的“复制数据”。

例如: 如果 x = 1,则终止管道,如果不是,则重新处理(限制为 3 次尝试)。

最好的方法是什么?

【问题讨论】:

  • 首先考虑是否可以直接在 ADF 中进行评估。如果没有,您的第一个挑战是从笔记本执行中获得结果。也许你可以使用这个过于冗长的指南来解决它。 azurelib.com/output-from-databricks-to-adf

标签: azure-data-factory azure-databricks azure-data-factory-pipeline


【解决方案1】:

您可以在如果直到ADF 的活动。

请通过下面的示例演示:

这是来自 databricks 的示例 Notebook 代码。

#your code
x=1
dbutils.notebook.exit(x)

在 ADF 中,首先创建一个将在 until 活动中使用的数组变量。

此数组长度用于 n 次重新处理。

接下来给你的databricks笔记本。

现在使用 if 活动并在其中给出以下表达式。

@equals(activity('Notebook1').output.runOutput,1)

如果这是真的,我们的管道必须终止。所以,添加一个失败活动在里面真实的活动如果.

在这里,您可以提供任何您想要的信息。

让 if 的 Fail 活动保持原样。

现在,使用一个 until 活动并给它 if 的成功。

在直到活动内部,我们可以提供任何活动。如果您想重新处理另一个管道,那么您也可以提供执行管道。在这里,我给出了一个复制活动。 复制活动后使用附加变量活动并给出我们在第一个定义的数组变量,并附加您想要的任何单个值。

现在在直到表达式中给出以下内容。

@equals(length(variables('iter')),4)

因此,如果x!=1,直到内部的活动将重新处理 3 次。

如果 x=1 在笔记本中,则管道失败并在 if 处终止。

如果 x!=1 在笔记本中,直到重新处理复制活动 3 次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2020-06-23
    • 2022-06-30
    • 1970-01-01
    • 2021-03-14
    • 2021-03-08
    • 2022-08-19
    相关资源
    最近更新 更多