在ADF中校验Excel与PDF文件名匹配的活动及表达式咨询
Azure Data Factory 文件名匹配校验实现方案
核心思路
你已经通过If活动确认Excel和PDF文件都存在,接下来只需提取两者的文件名前缀(去掉后缀)并对比是否一致,根据结果分支执行后续逻辑。Filter活动更适合批量文件配对场景,单个文件校验用变量+条件判断更高效。
单个文件校验场景(一对一匹配)
所需活动
- Set Variable(2个):分别提取Excel和PDF的文件名前缀
- If Condition:对比两个前缀是否一致,分支执行逻辑
关键表达式
提取Excel文件名前缀(假设已通过Get Metadata或变量拿到文件名):
split(variables('ExcelFileName'), '.')[0]例:输入
Student_12345.xlsx,输出Student_12345提取PDF文件名前缀:
split(variables('PDFFileName'), '.')[0]例:输入
Student_12345.pdf,输出Student_12345If 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:判断筛选结果是否存在匹配项
关键配置
- Filter活动的Items设为PDF文件列表变量,Condition设为:
equals(split(item().name, '.')[0], split(items('For_Each_Excel_Files').name, '.')[0]) - If Condition判断筛选结果的长度:
equals(length(activity('Filter_PDF_Match').output.value), 1)- 结果为
True:执行该文件对的后续活动 - 结果为
False:触发Databricks Notebook处理不匹配情况
- 结果为
内容的提问来源于stack exchange,提问作者kimchigirl
相关产品推荐
相关产品推荐

