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

如何在ADF Pipeline中逐个向Databricks Notebook传递多文件

解决ADF Pipeline嵌套XML文件逐个传递给Databricks Notebook的方案

核心实现逻辑

通过ADF的For Each串行执行配合文件筛选、排序,实现按嵌套文件夹顺序逐个将XML文件路径传递给固定逻辑的Databricks Notebook。

分步操作指南

1. 确认Get Metadata的输出完整性

你已完成Get Metadata活动配置,需确保:

  • Field List勾选了childItems,能获取目标路径landing/Datasource下所有层级的文件和文件夹
  • 根路径设置准确,覆盖所有嵌套的日期、时间文件夹

2. 筛选XML文件并按层级排序

添加两个活动处理Get Metadata的输出:

  • Filter活动:
    • 输入:@activity('Get Metadata').output.childItems
    • 过滤条件:@endsWith(item().name, '.xml'),仅保留XML格式文件
  • Sort活动:
    • 输入:Filter活动的输出结果
    • 排序字段:item().path(文件完整路径)
    • 排序顺序:升序,确保先处理timefolder(1)的文件,再处理timefolder(2)的文件

3. 配置For Each串行执行循环

添加For Each活动,设置如下:

  • 输入:Sort活动的输出结果
  • 勾选Sequential(必选,保证逐个处理,完成一个再启动下一个)
  • 循环内部添加Databricks Notebook活动:
    • 在Notebook活动的Base parameters中新增参数(例如targetFilePath)
    • 参数值设置为@item().path,将当前循环的XML文件完整路径传递给Notebook
    • 确保Notebook已预先定义好接收该参数的逻辑,用于读取对应XML文件

4. 可选:错误处理机制

若需避免单个文件处理失败中断整个流程,可在Databricks Notebook活动上添加Failure分支:

  • 例如添加Set Variable活动记录错误文件路径,或添加Copy Data活动将错误日志写入存储账户

关键注意事项

  • 务必开启For Each的Sequential模式,默认并行执行会同时启动多个Notebook,不符合需求
  • 排序时必须使用文件完整路径path而非文件名name,否则无法保证嵌套文件夹的处理顺序
  • 确认ADF传递的参数名称与Databricks Notebook中定义的参数名称完全一致,避免参数传递失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 07:52:35