【问题标题】:Importing CSV in Talend double quote delimited column is ignored在 Talend 双引号分隔列中导入 CSV 被忽略
【发布时间】:2017-05-19 01:22:19
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 双引号来自 mailchimp 摘录。我无法控制输入格式。
  • 我通过重置组件以使用存储库中定义的元数据解决了这个问题,但这些其他解决方案也有效。

标签: csv talend double-quotes


【解决方案1】:

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

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

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

【讨论】:

  • 双引号来自 mailchimp 提取。我无法控制输入文件的格式,除非在 Talend 中修改它们。
  • 这是一个聪明的主意——如果我还没有解决它,我会选择这个解决方案。
【解决方案2】:

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

如果这不是选项,您还可以使用 tFileInputFullRow 读取文件,使用字符串替换删除引号,然后使用 tDenormalize 将数据处理为列数据.

【讨论】:

    【解决方案3】:

    如果您使用元数据,那么:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 2017-08-08
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多