我有.csv
文件,其中包含名为created_ts
的列,并包含日期值。但是,日期有两种格式:
yyyy-MM-dd hh:mm:ss.SSSSSSX
)yyyy-MM-dd hh:mm:ssX
)所以我的问题是如何从.csv
文件中读取数据而不会收到错误" Unparseable date:2008-10-25 18:22:32 + 02"
这里的图片展示了我如何设置日期格式,但对于created_ts
列,我有两种不同格式的日期,所以如果我放第一个,我得到" Unparseable date: XXXXXX"如果我放第二种格式错误,同样的错误......
答案 0 :(得分:1)
由于您的日期可能是不同的格式,您需要在tFileInputDelimited
中将列作为字符串类型读取,然后在tMap
内,检查日期类型(检查日期的简单方法)通过测试其长度)并使用正确的日期格式解析它:
tFileInputDelimited -- tMap -- output
在tMap表达式中,你可以这样:
row.created_ts.length() == 22 ? TalendDate.parseDate("yyyy-MM-dd hh:mm:ssX", row.created_ts) : TalendDate.parseDate("yyyy-MM-dd hh:mm:ss.SSSSSSX", row.created_ts)