1
我读它具有这种格式的时间戳字段"yyyy-MM-dd HH:mm:ss"
的Java时间戳为bigint为帕拉
我希望能够将其转换为一个字段在黑斑羚为BigInt有,应该像Java中yyyMMddHHmmss
一个文本文件。
我使用了Talend的ETL,但我得到这个错误“模式的DBTYPE不正确此组件” ,所以我希望有合适的转型,我tImpalaOutput组件
我读它具有这种格式的时间戳字段"yyyy-MM-dd HH:mm:ss"
的Java时间戳为bigint为帕拉
我希望能够将其转换为一个字段在黑斑羚为BigInt有,应该像Java中yyyMMddHHmmss
一个文本文件。
我使用了Talend的ETL,但我得到这个错误“模式的DBTYPE不正确此组件” ,所以我希望有合适的转型,我tImpalaOutput组件
一个显而易见的选择是阅读以字符串形式输入日期,将其格式化为所需的输出,然后在将其发送到Impala之前将其转换为长整型。
要做到这一点,你将使用Talend的parseDate功能的东西,如启动:
TalendDate.parseDate("yyyy-MM-dd HH:mm:ss",row1.date)
这解析日期字符串成日期类型的对象。从这里你可以将这个您想要的字符串格式:
TalendDate.formatDate("yyyMMddHHmmss",row2.date)
或者这可以一气呵成地完成与:
TalendDate.formatDate("yyyMMddHHmmss",TalendDate.parseDate("yyyy-MM-dd HH:mm:ss",row1.date))
之后,你应该有你想要的格式的日期字符串。然后,您可以使用tConvertType组件或下面的Java代码施放此为Long:
Long.valueOf(row3.date)
或者,再一次让我们可以做整个事情的一个班轮:
Long.valueOf(TalendDate.formatDate("yyyMMddHHmmss",TalendDate.parseDate("yyyy-MM-dd HH:mm:ss",row1.date)))
从这里你应该能够将它作为Java Long发送到Impala,并发送到Impala BIGINT字段。
谢谢,这是非常有益的! :) – user1189851 2014-12-03 22:56:30
嗨@ydaetskcoR:我试图使用龙。不幸的是BIGINT被映射到Java类型的BIGDECIMAL。任何想法如何解决这个问题? – user1189851 2014-12-09 17:24:12