當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。