将数据上载到S3,然后上传到Presto。但是由于文件中数据的问题,我们在从S3上传到Presto时遇到了问题。元数据的格式是正确的,但是由于B列的问题,它们正在失败。
A;B;日期
环境保护局;能源销售和分配;209-01-11 12:10:13
环境保护局;De MARIA G rfaPepeer A/S;2019-02- 12 :10:13
扫描转换A/S;2019-02- 11 :10:12
环保局;*Mega;2019-02- 11 :10:13
环保局;sAYSl-S hAAdk Oy;2019-02- 11 :11:11 :11
我们在前面的步骤(Informatica )中添加替换公式,以添加\并正确读取值。是否有需要查找并添加\的字符列表?
发布于 2019-04-07 11:57:43
问题是,按照标准,如果B列可以包含分隔符,那么应该在该列上添加引号。如果里面有引号( 99%可能会发生什么),那么您应该在前面添加转义字符。
A;B;DATE
EPA;"company";01/01/2000
EPA;"Super \"company\""; 01/01/2000
EPA,"\"dadad\" \;"; 01/01/2000
我也有类似的问题,用正则表达式很容易解决:
在您的场景中,您可以搜索:
(^EPA;)
并将其替换为:$1"
==> s/(^EPA;)/$1"/g
(;[0-9]{1,2}/[0-9]{1,2})
并将其替换为:"$1
==> s/\s*(;[0-9]{1,2}/[0-9]{1,2})/"$1/g
最后一步将是全球反斜杠的浓缩:
s/([^;"]|;")(")([^;\n])/$1\\$2$3/g
https://stackoverflow.com/questions/54630143
复制相似问题