当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyspark to_utc_timestamp用法及代码示例


本文简要介绍 pyspark.sql.functions.to_utc_timestamp 的用法。

用法:

pyspark.sql.functions.to_utc_timestamp(timestamp, tz)

这是支持 TIMESTAMP WITHOUT TIMEZONE 的数据库的常用函数。此函数采用时间戳timezone-agnostic,并将其解释为给定时区的时间戳,并将该时间戳呈现为 UTC 时间戳。

但是,Spark 中的时间戳表示距 Unix 纪元的微秒数,而不是timezone-agnostic。所以在 Spark 中,这个函数只是将时间戳值从给定的时区转移到 UTC 时区。

如果输入是带有时区的字符串,则此函数可能会返回令人困惑的结果,例如'2018-03-13T06:18:23+00:00'。原因是,Spark首先根据字符串中的时区将字符串转换为时间戳,最后根据会话本地时区将时间戳转换为字符串来显示结果。

1.5.0 版中的新函数。

参数

timestamp Column 或 str

包含时间戳的列

tz Column 或 str

详细说明输入应调整到的时区 ID 的字符串。它应该采用基于区域的区域 ID 或区域偏移的格式。区域 ID 必须采用“区域/城市”形式,例如“美国/Los_Angeles”。区域偏移量必须采用“(+|-)HH:mm”格式,例如“-08:00”或“+01:00”。还支持“UTC”和“Z”作为“+00:00”的别名。不建议使用其他短名称,因为它们可能会模棱两可。

在 2.4.0 版中更改:tz可以采取Column包含时区 ID 字符串。

例子

>>> df = spark.createDataFrame([('1997-02-28 10:30:00', 'JST')], ['ts', 'tz'])
>>> df.select(to_utc_timestamp(df.ts, "PST").alias('utc_time')).collect()
[Row(utc_time=datetime.datetime(1997, 2, 28, 18, 30))]
>>> df.select(to_utc_timestamp(df.ts, df.tz).alias('utc_time')).collect()
[Row(utc_time=datetime.datetime(1997, 2, 28, 1, 30))]

相关用法


注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.sql.functions.to_utc_timestamp。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。