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

在ADF中校验Excel与PDF文件名匹配的活动及表达式咨询

Azure Data Factory 文件名匹配校验实现方案

核心思路

你已经通过If活动确认Excel和PDF文件都存在,接下来只需提取两者的文件名前缀(去掉后缀)并对比是否一致,根据结果分支执行后续逻辑。Filter活动更适合批量文件配对场景,单个文件校验用变量+条件判断更高效。


单个文件校验场景(一对一匹配)

所需活动

  • Set Variable(2个):分别提取Excel和PDF的文件名前缀
  • If Condition:对比两个前缀是否一致,分支执行逻辑

关键表达式

  1. 提取Excel文件名前缀(假设已通过Get Metadata或变量拿到文件名):

    split(variables('ExcelFileName'), '.')[0]
    

    例:输入Student_12345.xlsx,输出Student_12345

  2. 提取PDF文件名前缀:

    split(variables('PDFFileName'), '.')[0]
    

    例:输入Student_12345.pdf,输出Student_12345

  3. If Condition的判断表达式:

    equals(variables('ExcelFilePrefix'), variables('PDFFilePrefix'))
    
    • 结果为True:执行后续正常活动
    • 结果为False:触发Databricks Notebook

批量文件校验场景(多对多配对)

如果需要处理多个Excel和PDF文件的配对校验,Filter活动就很合适,步骤如下:

所需活动

  • Get Metadata(2个):分别获取存储路径下所有Excel、PDF文件的列表
  • Set Variable(2个):将两个文件列表存入数组变量
  • For Each:遍历Excel文件列表
  • Filter:在循环内从PDF列表中筛选前缀匹配的文件
  • If Condition:判断筛选结果是否存在匹配项

关键配置

  1. Filter活动的Items设为PDF文件列表变量,Condition设为:
    equals(split(item().name, '.')[0], split(items('For_Each_Excel_Files').name, '.')[0])
    
  2. If Condition判断筛选结果的长度:
    equals(length(activity('Filter_PDF_Match').output.value), 1)
    
    • 结果为True:执行该文件对的后续活动
    • 结果为False:触发Databricks Notebook处理不匹配情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:16:00