如何在ADF中用Filter活动筛选多文件夹内指定后缀文件
解决ADF Filter活动多后缀文件筛选问题
你之前的写法报错是因为endswith()函数仅支持两个参数(待判断字符串+单个后缀),无法直接传入多个后缀。要实现多指定后缀的文件筛选,有两种简洁的写法:
方法1:多个endswith()结合逻辑或(or)
直接通过or运算符串联多个endswith()判断,只要满足其中一个后缀条件就会被筛选出来:
@or( endswith(item().name,'_Filter.txt'), endswith(item().name,'_Condition.txt'), endswith(item().name,'_Env.txt'), endswith(item().name,'_escape.txt'), endswith(item().name,'_name.txt') )
方法2:利用数组some()函数遍历判断
把所有目标后缀存入数组,通过some()函数遍历数组,只要文件名以数组中任意一个后缀结尾就返回true:
@some( createArray('_Filter.txt','_Condition.txt','_Env.txt','_escape.txt','_name.txt'), endswith(item().name, item) )
把上述任意一种表达式填入Filter活动的筛选条件中,就能从每个文件夹里筛选出符合后缀要求的文件,后续复制数据活动直接引用Filter活动的输出(@activity('Filter活动名称').output.value)作为ADLS Gen2的源文件列表即可。
内容的提问来源于stack exchange,提问作者user24937315
相关产品推荐
相关产品推荐

