0

我有 Excel 数据并尝试使用 Talend Big Data for Open Studio 将数据插入 MongoDB。这是我的工作,

tFileInputExcel --> tMap --> tMongoDBOutput

在 excel 表中,我有一个日期值列,格式为7/13/2017(MM/dd/yyyy)作为字符串类型,我试图将此列值插入为 ISO 格式ISODate("2017-07-13T00:00 :00.000Z")在 MongoDB 中。

这是我的工作:
tFileInputExcel: 在此处输入图像描述

地图: 在此处输入图像描述

tMongoDB输出: 在此处输入图像描述

执行此作业时,我收到以下错误。 错误: 在此处输入图像描述

当我像这样更改解析格式时TalendDate.parseDate("MM/dd/yyyy",row1.ClosingDate),我收到 SimpleDateFormat 错误。 简单日期格式错误 在此处输入图像描述 如何解决此问题?

4

2 回答 2

0

这是在不了解底层数据类型的情况下读取数据时非常常见的错误。

我专门为 Talend 写了一篇博客:https ://www.tobiasmaasland.de/2017/07/20/using-date-in-talend-etl-jobs/

但让我解释一下。

有时 Excel 会尝试转换单元格中的数据,即使有人可能认为单元格类型设置为字符串。Insted,它设置为日期。因此,不需要转换,输入组件中的类型需要为 Date。

如果是 String 并且发生错误,则 String 的结构要么在各处都不相同,要么某些单元格为空(null)。所以你可能很幸运

TalendDate.parseDate("MM/dd/yyyy", (row1.ClosingDate == null), "01/01/1970", row1.ClosingDate)

我只是假设您可能想使用一个占位符日期,该日期设置为空。

这在很大程度上取决于单元格中的实际数据类型,每个单元格是否具有相同的数据类型以及所有数据的格式是否正确。

总结一下我的博客文章中的一个事实:不要使用字符串作为日期。在 Excel 中使用日期作为日期。它使一切变得更容易。

于 2018-01-03T11:20:14.873 回答
0

如果您的 mongodb 列架构是日期,您可以简单地执行此操作:

TalendDate.parseDate("MM/dd/yyyy",row3.newColumn) 

这将自动转换您的 mongoDB 列具有的日期模型中的日期。

您可以在 Talend 中的模式中更改日期模型,例如"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'".

于 2017-12-29T10:59:17.450 回答