pyspark.sql.functions.from_utc_timestamp ¶
-
pyspark.sql.functions.
from_utc_timestamp
( timestamp : ColumnOrName , tz : ColumnOrName ) → pyspark.sql.column.Column [source] ¶ -
这是一个常见的函数,用于支持无时区时间戳的数据库。这个函数接受一个不依赖于时区的时间戳,并将其解释为UTC中的时间戳,并将该时间戳呈现为给定时区的时间戳。
然而,Spark中的时间戳表示自Unix纪元以来的微秒数,这并不是独立于时区的。因此,在Spark中,此函数只是将时间戳值从UTC时区转换为给定的时区。
如果输入是带有时区的字符串,例如‘2018-03-13T06:18:23+00:00’,该函数可能会返回令人困惑的结果。原因在于,Spark首先根据字符串中的时区将字符串转换为时间戳,最后通过根据会话本地时区将时间戳转换为字符串来显示结果。
版本 1.5.0 中的新功能。
在版本 3.4.0 中更改: 支持 Spark Connect。
- Parameters
- Returns
-
-
列
-
在给定时区中表示的时间戳值。
-
示例
>>> df = spark.createDataFrame([('1997-02-28 10:30:00', 'JST')], ['ts', 'tz']) >>> df.select(from_utc_timestamp(df.ts, "PST").alias('local_time')).collect() [Row(local_time=datetime.datetime(1997, 2, 28, 2, 30))] >>> df.select(from_utc_timestamp(df.ts, df.tz).alias('local_time')).collect() [Row(local_time=datetime.datetime(1997, 2, 28, 19, 30))]