Synapse Pipeline:如何从通配符路径的文件名提取年份与国家
在Azure Data Factory Copy Activity里从文件名提取年份、国家并新增列
一、先把源数据集的通配符路径设置好
假设你的ADLS文件存在容器名/文件夹名/下面,直接把文件路径改成:
your-container/your-folder/File * *.csv
这样就能匹配所有File XXXX XX adj.csv格式的文件,其中第一个*对应年份,第二个对应国家,正好符合你的需求。
二、写动态表达式提取年份和国家
ADF有内置的字符串处理函数,直接用这些函数从文件名里抠出你要的值:
提取年份的表达式
split(split(item().name, ' ')[1], '.')[0]
简单说下逻辑:
item().name就是当前正在处理的文件名,比如File 2024 US adj.csv- 先用
split(item().name, ' ')按空格把文件名拆成数组,得到["File", "2024", "US", "adj.csv"] - 数组里第2个元素(索引1)就是年份
2024,最后用split(..., '.')处理下,避免文件名后缀干扰,确保拿到纯年份数字
提取国家的表达式
split(split(item().name, ' ')[2], '.')[0]
逻辑和年份一致:按空格拆分后取数组第3个元素(索引2),就是国家代码US,同样处理后缀保证值干净。
三、在Copy Activity里配置新增列
不用额外开数据流动,直接在Copy Activity的映射标签页操作:
- 点击「添加列」,输入列名
年份,在「源」输入框粘贴上面的年份表达式 - 再添加
国家列,粘贴国家表达式即可
四、别忘了测试表达式
在ADF的表达式编辑器里点「测试」,输入你的测试文件名File 2024 US adj.csv,确认返回的是2024和US,没问题再运行任务。
内容的提问来源于stack exchange,提问作者Rchee
相关产品推荐
相关产品推荐

