Hive 和Spark 中时间,时区转换方法

本文探讨了Hive和Spark在处理带有时区的时间字符串时的转换问题。Hive的`unix_timestamp`和`to_unix_timestamp`函数无法正确处理时区信息,而Spark的`to_utc_timestamp`函数则能够根据指定的时区进行转换。对于全球团队的数据处理,Spark的这个功能显得更为实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hive :

hive> select unix_timestamp('2018-11-07T17:24:09.313-05:00')
    > ;
OK
_c0
NULL
Time taken: 1.061 seconds, Fetched: 1 row(s)
hive> select unix_timestamp('2018-11-07T17:24:09.313')
    > ;
OK
_c0
NULL
Time taken: 0.078 seconds, Fetched: 1 row(s)
hive> select unix_timestamp('2018-11-07 17:24:09.313') ;
OK
_c0
1541636649
可以发现带时区的时间,unix_timestamp无法转换。

hive> select unix_timestamp('2018-11-07 17:24:09.313+01:00');
OK
_c0
1541636649
hive> select unix_timestamp('2018-11-07 17:24:09.313-05:00');
OK
_c0
1541636649
可以发现其也无法识别时区的变化

hive> select to_unix_timestamp('2018-11-07T17:24:09.313+01:00')
    > ;
OK
_c0
NULL
Time taken: 0.089 seconds, Fetched: 1 row(s)
hive> select to_unix_timestamp('2018-11-07 17:24:09.313+01:00');
OK
_c0
1541636649
Time taken: 0.065 seconds

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值