ADF将.Tab转Parquet时丢失反斜杠\字符问题求助
ADF Copy Activity 反斜杠丢失问题排查与解决建议
排查方向
- 检查源文件原始内容:用纯文本编辑器(如Notepad++)打开源Tab/CSV文件,确认目标字段的反斜杠是单个
\还是已被转义为其他形式。如果源文件中实际是转义格式,ADF读取时会解析转义导致反斜杠丢失。 - 验证动态映射的JSON解析:检查SQL Server中存储的映射JSON内容,确认是否存在反斜杠被自动转义的情况(比如存储的是
"GH/DFC\\3456"而非"GH/DFC\3456"),同时确认映射中字段类型是否明确设置为string。 - 检查源数据集的转义配置:查看ADF中Tab/CSV源数据集的Escape character设置,若该选项被设为
\,ADF会将反斜杠当作转义符处理,导致其被移除。默认应为None。 - 隔离动态映射影响:暂时替换为手动配置的静态字段映射(全部设为string类型),执行复制操作。若问题消失,说明动态映射的JSON解析过程中出现了转义丢失。
解决建议
- 修正源数据集转义设置:确保Tab/CSV源数据集的Escape character设置为
None,禁止ADF将反斜杠解析为转义符。 - 调整动态映射的转义处理:若SQL Server存储的映射JSON存在转义问题,可在ADF中对映射字符串做预处理,比如使用
@replace(item().Mapping, '\', '\\')后再转为JSON,确保反斜杠被保留。 - 强制原始字符串保留:在字段映射中明确指定所有目标字段类型为
string,关闭任何自动类型转换选项。若源文件包含引号,可开启Preserve quotes选项进一步避免特殊字符解析。 - 改用Data Flow处理:若Copy Activity的默认解析逻辑无法满足需求,使用Data Flow的Derived Column转换,直接引用原始字段值(如
$columnName),绕过自动转义机制。
内容的提问来源于stack exchange,提问作者mohammed rifat khan
相关产品推荐
相关产品推荐

