在 Talend 双引号分隔列中导入 CSV 被忽略

Importing CSV in Talend double quote delimited column is ignored

我有一个包含双引号分隔时间戳和电子邮件字段的 CSV 文件,例如

Timestamp,Email
"2017-01-01 00:00:01",abc@email.com
"2017-01-01 00:02:31",sampleaddress@email2.com

我已经为 CSV 文件定义了一个元数据源,它能够正确识别和键入两列。但是,当我执行包时,它会将时间戳列视为不存在(通常我会收到错误 'Unparseable date: "abc@email.com"')

我已尝试使用多种设置更改 tFileInputDelimited,包括转义和文本封闭选项以及将时间戳作为日期和字符串导入(如果我将其作为字符串导入,时间戳字段包含电子邮件地址并且电子邮件地址为空),但我无法让导入识别双引号分隔时间戳列的存在。

我假设我做了一些导致它转义整个时间戳值的事情,但我想不出那可能是什么。

如果您真的想在输入文件中的时间戳周围保留双引号,试试这个日期模型

"\"yyyy-MM-dd HH:mm:ss\""

这样,您指定在输入字符串中需要双引号 (\")。

如果您可以更改输入数据,则应该为所有字段或 none 启用引号。

如果没有选择,您还可以使用 tFileInputFullRow 读取文件,使用字符串替换删除引号,然后使用 tDenormalize 处理数据 进入列数据。

如果您使用元数据,则:

  1. 确保组件引用存储库(组件 -> 属性 类型 = 存储库)
  2. 修改元数据,将文本包围字符更改为“\”