2017-05-19 133 views
0

我有一个带双引号分隔时间戳和电子邮件字段的CSV文件,例如在Talend中导入CSV双引号分隔列被忽略

Timestamp,Email 
"2017-01-01 00:00:01",[email protected] 
"2017-01-01 00:02:31",[email protected] 

我已经为CSV文件定义了元数据源,并且它能够正确识别并键入这两列。但是,当我执行包时,它会将时间戳记列视为不存在(通常出现'Unparseable date:“[email protected]”''错误)

我试图改变tFileInputDelimited包括转义和文本框选项以及导入时间戳作为日期和字符串的设置数(如果我将其作为字符串导入,时间戳字段具有电子邮件地址,并且电子邮件地址为空),但我无法获取导入以识别双引号分隔时间戳列的存在。

我假设我已经做了一件让它逃避整个时间戳值的事情,但我想不出可能是什么。

+0

双引号来自于mailchimp提取。我对输入格式没有任何控制。 –

+0

我通过重置组件来使用存储库中定义的元数据来解决问题,但这些其他解决方案是有效。 –

回答

1

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

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

这种方式,您可以指定需要双引号(\“)中输入字符串。

+0

双引号来自mailchimp提取。我无法控制输入文件的格式,禁止在Talend中修改它们。 –

+0

虽然这是一个聪明的想法 - 如果我还没有解决它,我会用这个解决方案。 –

1

如果你可以改变输入数据时,您应该启用所有的字段或无报价。

如果这是没办法,你也可以阅读tFileInputFullRow文件,删除引号w^ith一个字符串替换可能,然后用tDenormalize将数据处理成列数据。

1

如果使用元数据,则:

  1. 确保组分指的是存储库(成分 - >属性类型=库)
  2. 修改元数据以改变文本外壳字符“ \“”
相关问题