You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory中处理字段内含分隔符的CSV文件

字段包含分隔符时的CSV转换与ADF解析解决方案

导出阶段处理

  • 方案1:使用文本限定符包裹所有字段
    导出CSV时统一用双引号"作为文本限定符包裹所有字段值,标准CSV解析器会自动识别限定符内部的分隔符为字段内容的一部分,不会拆分。90万条数据的规模下,主流导出工具(SQL Server的bcp/SSIS、Python pandas、Spark等)都支持该配置,不会带来明显的性能损耗。
    示例:原错误行字段1|字段2|内容带|的字段3|字段4会被导出为"字段1"|"字段2"|"内容带|的字段3"|"字段4",解析时不会出现拆分错位问题。
  • 方案2:替换字段内的分隔符
    如果不方便添加文本限定符,可以在导出阶段将字段内容中的|替换为其他罕见的占位符(比如~|~),后续写入目标表前再替换回原字符即可,这种方案适合限定符也会出现在字段内容的极端场景。
  • 方案3:更换更罕见的分隔符
    直接更换分隔符为字段内容中几乎不可能出现的字符,比如ASCII控制字符\001(SOH)、\007(BEL),这类字符不会出现在常规文本内容中,从根源避免分隔符冲突。

ADF解析阶段适配

  • 对应带文本限定符的CSV:在ADF的数据集配置中,将「分隔符」设置为|,「引号字符」设置为",ADF的CSV解析引擎会自动处理限定符内部的分隔符,无需额外开发逻辑。
  • 对应替换过分隔符的CSV:在ADF的复制活动中添加派生列转换,调用replace()函数将占位符替换回原|字符即可,90万条数据的转换操作在ADF中耗时通常在1分钟以内。
  • 对应使用控制字符作为分隔符的CSV:在ADF分隔符设置中选择「自定义」,输入对应的控制字符编码即可正常解析。

特殊场景兜底

如果已经导出了不带限定符的CSV文件,且没有原始表可以重新导出,可以先写预处理脚本对文件做行校验:逐行统计|的数量,正常行的分隔符数量固定为27个(对应28个字段),超出的行单独提取出来做人工/规则修正后再合并导入,避免全量重新导出的成本。


内容的提问来源于stack exchange,提问作者Sandeep Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:36:02