Azure Data Factory中CSV文件含逗号数据的处理方法问询
在Azure Data Factory中处理CSV含逗号字段的正确方案
1. 源数据集CSV格式的核心配置
- 分隔符:保持设置为逗号(
,) - 引号字符:指定为双引号(
"),无需设置转义字符。这里要明确两个参数的区别:- 引号字符的作用是标记「包含分隔符的完整字段」,ADF会自动识别被双引号包裹的内容为单个列,且自动剥离外层的双引号。
- 转义字符仅用于处理字段内部的引号(比如字段内容是
foo"bar时才需要配置),你的场景完全不需要启用该设置。
2. 配置后的验证
完成数据集配置后,进入「数据预览」页签确认结果:原本的"foo,bar"会被正确解析为单个列的值,最终存储为foo,bar,不会保留外层双引号。
3. 针对已存在带引号脏数据的补救处理
如果源数据已经错误写入了带双引号的内容(比如直接存储为"foo,bar"而非foo,bar),可以在数据流中添加派生列转换,用表达式批量去除首尾双引号:
trim(ColumnName, '"')
如果字段内部存在转义的双引号(比如"foo""bar"),则使用以下表达式还原为正常单引号:
replace(ColumnName, '""', '"')
4. 额外规范要求
- 确保源CSV格式统一:所有包含分隔符的字段都用双引号包裹,避免混合部分包裹、部分不包裹的情况,否则ADF可能出现识别异常。
- 使用Copy Activity时,在「映射」页签核对列映射关系,避免因字段拆分导致的映射错误。
内容的提问来源于stack exchange,提问作者PAVAN
相关产品推荐
相关产品推荐

