Azure Data Factory复制活动报错:索引22列名为空排查求助
解决ADF复制活动报错:
ErrorCode=DelimitedTextColumnNameNotAllowNull 1. 确认源CSV文件的实际结构
- 用纯文本编辑器(如Notepad++)打开源CSV文件,检查表头行的分隔符数量:
- 若为逗号分隔,21列的表头应包含20个逗号;若出现21个逗号,说明实际存在22列,大概率是表头行有多余分隔符(比如重复列之间误加空分隔、列名前后藏有分隔符)。
- 核对所有数据行的列数是否与表头完全匹配,避免某行数据多打分隔符导致列数超标。
- 开启编辑器「显示所有字符」功能,排查表头是否存在隐藏特殊字符(如换行符、制表符)或空列名。
2. 调整ADF复制活动的源配置
- 进入复制活动的「源」设置:
- 确认列分隔符与文件实际使用的一致(如逗号、分号、制表符),错误的分隔符会导致ADF解析列数异常。
- 勾选「第一行作为标题」,点击预览数据,查看ADF是否能正确识别所有列。若预览出现空列名,说明源文件确实存在无效列,需先清理。
- 在源的「投影」面板中,手动删除空列或无需的重复列,仅保留需要的21列。
3. 修正复制活动的映射配置
- 进入「映射」设置:
- 删除所有现有映射,点击导入架构,分别从源和目标重新导入列架构,再手动建立一一对应关系,避免残留无效映射项。
- 确认映射列表中无空列名的条目,确保源与目标的列数均为21个且对应正确。
4. 处理源文件的重复列问题
- 若源文件确实存在重复列名,先修改源文件:
- 将重复列名重命名(如把第二个
col2改为col2_dup),避免ADF解析时出现异常。 - 若无法修改源文件,可改用ADF数据流替代复制活动:通过「选择」组件删除重复列或空列,再用「SQL数据库接收器」写入目标库,数据流对数据预处理的支持更灵活。
- 将重复列名重命名(如把第二个
5. 验证文件编码与格式
- 确保源CSV文件使用UTF-8编码,特殊编码可能导致ADF解析表头失败。
- 剔除文件中的隐藏格式(如Excel导出时的多余格式),建议用纯文本编辑器重新保存文件。
内容的提问来源于stack exchange,提问作者Joseph Egbujonuma
相关产品推荐
相关产品推荐

