Bob*_*ain 6 timezone timestamp dst apache-spark pyspark
我正在尝试将一列GMT时间戳字符串转换为东部时区的时间戳列.我想考虑夏令时.
我的时间戳字符串列如下所示:
'2017-02-01T10:15:21+00:00'
Run Code Online (Sandbox Code Playgroud)
我想出了如何将字符串列转换为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"))
Run Code Online (Sandbox Code Playgroud)
但是时间不会因夏令时而改变.是否有其他功能或某些东西可以通过转换时间戳来解释夏令时?
编辑:我想我弄清楚了.在上面的from_utc_timestamp调用中,我需要使用"America/New_York"而不是"EST":
df3 = df2.withColumn('datetimeET', F.from_utc_timestamp(df2.datetimeGMT, "America/New_York"))
Run Code Online (Sandbox Code Playgroud)
我最终想出了答案,所以我想在这里添加它。我还认为此问题/答案是值得的,因为在发布问题之前搜索该问题时,我找不到关于节省日光火花的任何信息。我大概应该意识到我应该搜索底层的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"))
Run Code Online (Sandbox Code Playgroud)
编辑:
该链接显示了可以以这种方式使用的可用时区字符串列表:https : //garygregory.wordpress.com/2013/06/18/what-are-the-java-timezone-ids/
归档时间: |
|
查看次数: |
5708 次 |
最近记录: |