gpt4 book ai didi

sql - 在 Spark SQL 中将可变时间添加到时间戳

转载 作者:行者123 更新时间:2023-12-02 00:07:10 32 4
gpt4 key购买 nike

我有一列带有时间戳的 Start_Time 和一列 Time_Zone_Offset,一个整数。如何将 Time_Zone_Offset 添加到 Start_Time 作为小时数?

示例我的表格:

id  Start_Time            Time_Zone_Offset

1 2020-01-12 00:00:00 1
2 2020-01-12 00:00:00 2

期望的输出:

id  Local_Start_Time

1 2020-01-12 01:00:00
2 2020-01-12 02:00:00

尝试:

SELECT id, Start_time + INTERVAL time_zone_offset HOURS AS Local_Start_Time
FROM MyTable

这似乎不起作用,而且我不能使用 from_utc_timestamp,因为我没有实际的时区详细信息,只有当时考虑的时区偏移量。

最佳答案

(希望你使用的是pyspark)

事实上,无法使它与 SQL 一起工作,我设法通过转换为时间戳来获得结果,这可能不是最好的方法,但它有效(我逐步进行以确保引用有效,以为我需要一个用户定义的函数,但显然不需要)

from pyspark.sql.functions import col,explode,lit
from pyspark.sql import functions as F
df2 = df.withColumn("Start_Time", F.unix_timestamp("Start_Time"))
df2.show()
df3 = df.withColumn("Start_Time", F.unix_timestamp("Start_Time") + df["Time_Zone_Offset"]*60*60)
df3.show()
df4 = df3.withColumn('Start_Time', F.from_unixtime("Start_Time", "YYYY-MM-DD HH:00:00")).show()

关于sql - 在 Spark SQL 中将可变时间添加到时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60209203/

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