Azure Data Factory复制活动失败:列数匹配仍报列不匹配错误
ADF复制活动CSV列数不匹配错误排查方案
问题场景
在Azure Data Factory(ADF)执行复制活动,源为Data Lake Storage Gen1的CSV文件,目标为SQL Server。已确认文件总列数与目标表列数匹配,但复制时触发错误:
处理‘Csv/Tsv Format Text’源‘opportunity.csv’的第224行时发现错误:找到的列数超出预期列数136。
排查与解决步骤
- 定位第224行的格式问题
- 直接用纯文本编辑器(如Notepad++)打开
opportunity.csv,跳转到第224行,检查是否存在:- 字段值中包含未被引号包裹的分隔符(比如逗号),导致解析时被误判为新列;
- 字段内包含换行符,导致行边界识别错误,后续行的内容被合并到当前行计算列数。
- 直接用纯文本编辑器(如Notepad++)打开
- 验证ADF CSV数据集配置
- 确认数据集的分隔符设置与实际文件完全一致(比如文件用逗号就别设成分号);
- 检查引号字符配置,确保字段中包含分隔符时,是用配置的引号(双引号/单引号)包裹的,ADF会忽略引号内的分隔符;
- 开启跳过空行选项,避免空行或格式残缺的行干扰解析逻辑。
- 用专业工具校验CSV结构
- 用CSV专用解析工具(如CSV Lint)扫描文件,快速定位格式异常的行,这类工具会明确指出哪里出现了列数不匹配或未转义的字符。
- 小批量测试验证
- 复制前223行到新CSV文件,测试复制活动是否成功,确认错误确实来自第224行;
- 逐步添加后续行,精准定位引发错误的具体内容。
- 异常行处理方案
- 若第224行是脏数据,可在ADF复制活动的错误处理中设置跳过错误行(比如设置错误阈值为1),先完成正常数据的复制,再单独修复异常行后补传;
- 或在源数据集的筛选条件中临时排除该行,待修复后再同步。
内容的提问来源于stack exchange,提问作者shining_star
相关产品推荐
相关产品推荐

