gpt4 book ai didi

Impala 的 Java 时间戳到 BigInt

转载 作者:太空宇宙 更新时间:2023-11-04 14:20:11 25 4
gpt4 key购买 nike

我正在读取一个文本文件,其中时间戳字段的格式为“yyyy-MM-dd HH:mm:ss”

我希望能够将其转换为 Impala 中的 BigInt 字段,并且应该像 Java 中的 yyyMMddHHmmss 一样。

我正在使用 Talend 进行 ETL,但收到此错误“架构的 dbType 对于该组件不正确”所以我想在我的 tImpalaOutput 组件中进行正确的转换

最佳答案

一个明显的选择是将日期作为字符串读取,将其格式化为您想要的输出,然后在将其发送到 Impala 之前将其转换为 long。

为此,您可以首先使用 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 BIGINT 字段。

关于Impala 的 Java 时间戳到 BigInt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27282037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com