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

AbInitio如何读取字段含分隔符且被双引号包裹的分隔文件

问题根因

你当前使用的DML未指定字段的引号包裹规则,解析器会把所有|都识别为字段分隔符,不会区分是在双引号内部还是外部,所以字段内的|会触发错误拆分。

正确解决方案

分两种适配场景:

方案1:字段级指定引号规则(无需修改组件配置)

直接修改DML,给每个字段指定quoted by '"'属性,让解析器自动忽略双引号内部的分隔符,同时自动剥离字段外层的双引号:

record
  string delimited by "|" quoted by '"' trim both nullable col1,
  string delimited by "|" quoted by '"' trim both nullable col2,
  string delimited by "|" quoted by '"' trim both nullable col3,
  string delimited by "\n" quoted by '"' trim both nullable col4
end

说明:

  • 最后一个字段的分隔符指定为\n(换行符),匹配行尾结束逻辑
  • trim both参数可以自动处理示例中|前后的多余空格,不需要额外做字段清洗
  • nullable参数会把最后一个字段的空双引号自动识别为null值,符合预期要求

方案2:全局配置引号规则(DML更简洁)

如果你使用的是Ab Initio等支持全局格式配置的ETL工具,可以在读取组件的格式配置项中,全局指定「Quote Character」为双引号",此时原来的DML只需要调整最后一个字段的分隔符即可正常运行:

record
  string("|") col1,
  string("|") col2,
  string("|") col3,
  string("\n") col4
end

这个方案不需要修改每个字段的定义,适合字段数量多的场景。

验证效果

用你提供的示例数据测试上述配置,最终解析结果和预期完全一致:

  • col1:units of the price | currency used
  • col2:ABC
  • col3:20210831
  • col4:null

内容的提问来源于stack exchange,提问作者akansha pandey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:42:00