apache配置单元:将时间戳从字符串转换为时间戳并将其保存到表中

6xfqseft  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(485)

我有一张这样的table hbase :
tableExaple (timestamp, timestamp_string, someOtherStuff) timestamp 具有数据类型
timestamp timestamp_string 获取数据类型 string 而且有规律 'yyyy-MM-dd HH:mm:ss.SSS' 现在我想从 timestamp_string 使用配置单元自定义项转换它 unix_timestamp(string date, string pattern)timestamp 并将其保存在同一个表中 timestamp .
我该怎么做?
比如

INSERT INTO tableExaple (timestamp) SELECT unix_timestamp(timestamp_string, 'yyyy-MM-dd HH:mm:ss.SSS') FROM tableExaple;

不起作用。

ccrfmcuu

ccrfmcuu1#

我不认为 unix_timestamp 喜欢毫秒格式。自 timestamp_string 属于类型 string ,你可以在 '.' 抓住日期和时间。所以如果你有 2014-11-11 08:09:10.123 , split(timestamp_string, '\\.') 会给你 [2014-11-11 08:09:10, 123] . 现在可以通过 [0] 以及 [1] .
例子:

SELECT otherStuff
    , timestamp
    , unix_timestamp(split(timestamp_string, '\\.')[0], 'yyyy-MM-dd HH:mm:ss') new_time
FROM some_table

如果要在 new_time 纵队,抓住 [1]split 数组(并除以1000)。

相关问题