gpt4 book ai didi

hadoop - 如何在 Impala 中获得与 Hives from_unixtime 相同的结果?

转载 作者:行者123 更新时间:2023-12-02 19:46:45 24 4
gpt4 key购买 nike

我了解 Imapla 解释相对于 UTC 时区的时间戳。我也知道有一个设置可以更改此行为,以便 impala 解释相对于本地时区的时间戳。问题是我无法更改此设置。

有没有办法获得与我在 Impala 的 Hive 中获得的结果相同的结果?
这是 Hive 结果:

select from_unixtime(1521938294)
--> 2018-03-25 01:38:14

本地时区是 Europe/Vienna

最佳答案

好问题。但答案很棘手!我研究了一段时间,下面是我的答案。

  • 您选择的日期和时间指向维也纳发生时移的时间。即,时间提前一小时。

  • 您可以使用以下链接进行检查。

    HERE1

    HERE2
  • 在 Impala 中进行时间转换,无需根据需要使用任何标志,语法如下所示,
  • select from_utc_timestamp(cast(from_unixtime(1521938294) AS TIMESTAMP), 'Europe/Vienna');
    [OR]
    select from_utc_timestamp('2018-03-25 00:38:14', 'Europe/Vienna');

    2018-03-25 01:38:00 <---EXPECTED OUTPUT
    2018-03-25 02:38:00 <---ACTUAL OUTPUT IN IMPALA

    上面的语法可以将 Unix 时间戳转换为欧洲/维也纳时间,但是由于现实生活中发生的时间偏移与转换之间的差异,结果中的一小时差异如上所示这发生在黑斑羚。

    原因:

    现实生活中的时移 - 2019 年 3 月 25 日 01:59:59,然后是 2019 年 3 月 25 日 03:00:00

    Impala 中的时移 - 2019 年 3 月 25 日 00:59:59,然后是 2019 年 3 月 25 日 02:00:00

    尽管 Impala 中似乎存在转换问题,但我上面提供的语法对于 2018 年 3 月 25 日以外的任何日期都应该可以完美地工作。

    其他日期:
    select from_utc_timestamp('2018-03-26 00:38:14', 'Europe/Vienna')

    2018-03-26 02:38:14 <---ACTUAL & CORRECT OUTPUT IN IMPALA

    希望能帮助到你!

    关于hadoop - 如何在 Impala 中获得与 Hives from_unixtime 相同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60229146/

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