将时间戳从时区转换为targetTz不带时区sourceTs的sourceTz时间戳。
有关相应的 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.Column 或 str |
没有时区的时间戳。 |
退货
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")