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

在Azure Data Factory中使用Join活动合并Data Lake Gen2容器多子文件夹文件的问题

在Azure Data Factory中使用Join活动合并Data Lake Gen2容器多子文件夹文件的问题

我来帮你梳理下这个问题的解决思路,你遇到的核心问题是ADF数据集无法正确识别Data Lake里的多层子文件夹文件,同时Join活动需要正确关联两个数据源的文件,咱们一步步来解决:

1. 先解决数据集预览报错的问题:配置通配符路径

你现在的数据集应该是没有正确匹配到子文件夹里的文件,导致预览时提示路径找不到。针对你的folder1和folder2,需要在数据集里设置通配符路径来遍历所有子文件夹:

  • 打开你的ADF数据集配置页面,选择对应的Azure Data Lake Storage Gen2链接服务
  • 容器名称确认无误后,在「目录」栏填写:folder1/**(针对folder1的数据集),folder2/**(针对folder2的数据集)
    • 这里的**是ADF的通配符,用来匹配任意层级的子文件夹,能自动抓取folder1下所有子文件夹里的文件
  • 另外,在数据集的「高级」设置里,勾选「递归」选项,确保ADF会遍历所有嵌套的子文件夹

配置完后再尝试预览数据集,如果还是报错,检查这几个点:

  • 确认存储账户链接服务的权限足够:比如用托管身份的话,要确保给托管身份分配了Blob数据读取权限
  • 检查路径拼写:比如你报错里的路径写的是directory,是不是应该替换成folder1或folder2?还有容器名有没有拼写错误(你原文里写了conianer,可能是笔误)
  • 确认文件确实存在,没有被隐藏,同时存储账户的防火墙/网络设置没有限制ADF的访问

2. 配置Join活动的两个数据源

当两个数据集都能正常读取所有子文件夹的文件后,就可以配置Join活动了:

  • 在ADF管道里添加Join活动,分别设置「源1」和「源2」为你配置好的folder1、folder2数据集
  • 选择合适的Join类型(比如内连接、左连接等,根据你的业务需求来)
  • 指定连接条件:需要确保两个数据集里有可以关联的字段(比如某个ID字段),并且字段的数据类型一致
  • 如果子文件夹里的文件结构不一致,建议先在Join之前用「数据流动」或者「Union活动」统一两个数据源的架构,避免Join时出现架构不兼容的问题

3. 额外注意事项

  • 如果你的文件是CSV格式,要确保所有文件的列数、列名一致,否则ADF可能无法正确识别架构
  • 要是需要按子文件夹的维度关联(比如folder1的sub folder1对应folder2的sub folder1),那你可能需要先在数据集中捕获文件夹路径作为字段,再用这个字段作为Join条件——可以在数据集的「映射」里添加派生列,用@item().folderPath来获取文件所在的文件夹路径

备注:内容来源于stack exchange,提问作者user22428402

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 13:28:02