Netezza CSV 加载忽略值内的逗号

Posted

技术标签:

【中文标题】Netezza CSV 加载忽略值内的逗号【英文标题】:Netezza CSV load ignore comma within value 【发布时间】:2018-09-21 11:20:24 【问题描述】:

我在 Netezza 中加载 CSV 文件。此文件中的一列具有如下值:$500,000-$749,999

即使此值用双引号括起来,Netezza 也不会忽略逗号。它会抛出一个 错误,例如 - expected end of row, "999"

文件中此字段之后还有两列。我尝试添加 EscapeChar ',' 但它再次给出了 Delimeter 和 EscapeChar 不能具有相同字符的错误 . 有没有人遇到过类似的问题?

解决方法:

我可以在我的表中再添加 2 两列,但是如果字段中没有逗号值,它将失败。

【问题讨论】:

感谢@JanSršeň 格式化问题:) 解决方法的一个更新:我添加了 2 列并执行了将数据加载到表中的命令。该命令运行良好,没有任何问题。我使用了 FillRecord 选项,它假定某些记录缺少最后 2 列,并用 NULL 填充它们。我将数据存储在一个临时表中,然后根据需要填充主表。我在开发环境中做到了这一点。解决方案会更有帮助,因为我在 Prod 中没有此解决方法选项。 【参考方案1】:

尝试将 QuotedValue 选项设置为 DOUBLE

https://www.ibm.com/support/knowledgecenter/en/SSULQD_7.2.1/com.ibm.nz.load.doc/r_load_quotedvalue.html

此外,如果您的所有列都被引用,您还可以将 requirequotes 选项设置为 true

https://www.ibm.com/support/knowledgecenter/en/SSULQD_7.2.1/com.ibm.nz.load.doc/r_load_requirequotes.html

【讨论】:

谢谢@PaulVernon。它与 QuotedValue 选项一起使用。

以上是关于Netezza CSV 加载忽略值内的逗号的主要内容,如果未能解决你的问题,请参考以下文章

GROOVY - 解析CSV:忽略双引号内的逗号

使用 awk 解析 csv 并忽略字段内的逗号

numpy genfromtxt/pandas read_csv;忽略引号内的逗号

如何在忽略引号内的任何逗号的情况下用逗号分隔? [复制]

hive导入csv文件,字段中双引号内有逗号

使用 awk 忽略 CSV 文件字段中的逗号