使用Azure ADF管道检测ADLS中.txt文件是否含有效数据并筛选
实现ADLS文件筛选与处理的步骤
1. 拉取目标文件夹的文件列表
- 用Metadata活动连接ADLS存储,指定目标文件夹,勾选
Child items选项,获取该文件夹下所有文件的完整信息(含路径、名称)。
2. 逐个校验文件有效性
添加For Each活动,迭代项设为Metadata的输出结果:
@activity('获取文件元数据').output.childItems,可选勾选Sequential串行处理(小文件量场景更稳定)。在For Each内部依次添加以下活动:
读取文件第二行
用Lookup活动,文件路径填
@item().path,配置:- 勾选
First row only Skip line count设为1(跳过表头,直接读取第二行)
注:如果文件只有表头一行,Lookup会返回空结果。
判断第二行是否为空
添加If Condition活动,判断表达式写:
@not(empty(activity('读取第二行').output.firstRow))- 条件为真(有效文件):
提前在管道开头创建数组变量ValidFiles,用Append Variable活动把当前文件路径@item().path加入这个数组,留作后续传递使用。 - 条件为假(无效文件):
用Delete活动连接ADLS,文件路径填@item().path,直接删除该文件。
- 勾选
3. 传递有效文件到目标管道
- For Each执行完成后,添加Execute Pipeline活动,把
ValidFiles数组作为参数传给目标管道,目标管道就能通过这个参数拿到所有有效文件的路径,继续后续处理。
关键提示
- 若文件编码特殊,需在Lookup活动里匹配对应的编码格式,避免读取内容异常。
- 确保Data Factory对ADLS目标文件夹拥有读取、删除的权限,否则会出现操作失败。
内容的提问来源于stack exchange,提问作者BelgratoSystem
相关产品推荐
相关产品推荐

