通过


convert_timezone

将时间戳从时区转换为targetTz不带时区sourceTssourceTz时间戳。

有关相应的 Databricks SQL 函数,请参阅 convert_timezone 函数

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.convert_timezone(sourceTz=<sourceTz>, targetTz=<targetTz>, sourceTs=<sourceTs>)

参数

参数 类型 Description
sourceTz pyspark.sql.Column, optional 输入时间戳的时区。 如果错过了,则当前会话时区将用作源时区。
targetTz pyspark.sql.Column 应将输入时间戳转换为的时区。
sourceTs pyspark.sql.Columnstr 没有时区的时间戳。

退货

pyspark.sql.Column:包含已转换时区时间戳的新列。

例子

spark.conf.set("spark.sql.session.timeZone", "America/Los_Angeles")
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('2015-04-08 00:00:00',)], ['ts'])
df.select(
'*',
dbf.convert_timezone(None, dbf.lit('Asia/Hong_Kong'), 'ts')
).show()
df = spark.createDataFrame([('2015-04-08 15:00:00',)], ['ts'])
df.select(
'*',
dbf.convert_timezone(dbf.lit('Asia/Hong_Kong'), dbf.lit('America/Los_Angeles'), df.ts)
).show()
spark.conf.unset("spark.sql.session.timeZone")