gpt4 book ai didi

apache-spark - Spark : converting GMT time stamps to Eastern taking daylight savings into account

转载 作者:行者123 更新时间:2023-12-04 14:55:06 25 4
gpt4 key购买 nike

我正在尝试将GMT时间戳字符串的列转换为东部时区的时间戳列。我想考虑夏令时。

我的时间戳字符串列如下所示:

'2017-02-01T10:15:21+00:00'

我想出了如何在EST中将字符串列转换为时间戳记:
from pyspark.sql import functions as F

df2 = df1.withColumn('datetimeGMT', df1.myTimeColumnInGMT.cast('timestamp'))
df3 = df2.withColumn('datetimeEST', F.from_utc_timestamp(df2.datetimeGMT, "EST"))

但是,夏时制不会改变时代。是否有其他功能或某些功能可以通过转换时间戳来节省夏时制?

编辑:我想我明白了。在上面的from_utc_timestamp调用中,我需要使用“America/New_York”而不是“EST”:
df3 = df2.withColumn('datetimeET', F.from_utc_timestamp(df2.datetimeGMT, "America/New_York"))

最佳答案

我最终想出了答案,所以我想在这里添加它。我还认为此问题/答案是值得的,因为在发布问题之前搜索该问题时,我找不到关于节省日光 Spark 的任何信息。我可能应该已经意识到我应该搜索底层的Java函数。

问题的答案最终是使用字符串“America/New_York”而不是“EST”。这可以正确应用夏令时。

from pyspark.sql import functions as F
df3 = df2.withColumn('datetimeET', F.from_utc_timestamp(df2.datetimeGMT, "America/New_York"))

编辑:

此链接显示可用这种方式使用的可用时区字符串的列表: https://garygregory.wordpress.com/2013/06/18/what-are-the-java-timezone-ids/

关于apache-spark - Spark : converting GMT time stamps to Eastern taking daylight savings into account,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763587/

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