【问题标题】:Can we pass Databricks output to function in an ADF Job?我们可以将 Databricks 输出传递给 ADF 作业吗?
【发布时间】:2019-09-07 16:03:20
【问题描述】:

谁能帮助我使用 Databricks 和 Azure 功能? 我正在尝试将数据块 JSON 输出传递到 ADF 作业中的 azure 函数体,这可能吗? 如果是,如何? 如果否,还有什么其他替代方法可以做到这一点?

【问题讨论】:

    标签: python json azure-functions azure-data-factory-2 azure-databricks


    【解决方案1】:

    在 Azure Databricks 中,有一种方法可以在退出时返回值。 dbutils.notebook.exit(myReturnValueGoesHere)

    在 Azure 数据工厂 V2 中,DatabricksNotebook 活动输出带有 3 个字段的 JSON: "runPageUrl" ,用于查看运行输出的 URL。 "effectiveIntegrationRuntime" ,代码正在执行的地方 “执行持续时间”

    如果使用上面的 dbutils 调用,输出 JSON 中会出现第四个字段 "runOutput" ,其中显示了 "myReturnValueGoesHere"。

    如果不使用上述 dbutils 调用,可以从 runPageUrl 中抓取信息。

    【讨论】:

    • 嗨,马丁,我试过用同样的方法。但它不起作用。我应该为它安装任何库吗?
    • 能否请您详细说明哪个部分不起作用?
    • 嗨@MartunJaffer,我在代码中添加了以下行“dbutils.notebook.exit(jsonobject)”,但是我没有看到在 adf 输出活动中打印 json。是否可以将此输出传递给函数体?
    • 嗨@Nomad18 您是否管理打印出adf 中的jsonobject?我这里也有类似情况!
    【解决方案2】:

    在笔记本中你可以使用:

    dbutils.notebook.exit(myReturnValueGoesHere)(如前所述)

    然后在 ADF 中,JSON 是一个位于 output.runOutput 上的对象,因此 @activity('RunNotebookActivityName').output.runOutput

    如果您返回:

    dbutils.notebook.exit('{"hello": {"some": {"object": "value"}}}')

    您可以使用以下方法在 ADF 中阅读:

    @activity('RunNotebookActivityName').output.runOutput.hello.some.object

    酷嘿?

    有关您可以执行的操作的完整列表,请参见:

    https://the.agilesql.club/2020/02/passing-status-messages-and-results-back-from-databricks-to-adf/

    编辑

    【讨论】:

    • 非常好。此外,如果您有很多输出值,我强烈建议您从中构建一个字典并使用import jsondbutils.notebook.exit(json.dumps(ouput_dict)) 转储它
    猜你喜欢
    • 1970-01-01
    • 2015-10-26
    • 2021-12-06
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 2020-05-22
    相关资源
    最近更新 更多