to_utc_timestamp(timestamp, timezone)
Описание
Функция to_utc_timestamp()
преобразует временную метку из указанного часового пояса в UTC.
Параметры
timestamp
: Column - временная метка в исходном часовом поясеtimezone
: Column - исходный часовой пояс (например, 'America/Los_Angeles', 'Europe/Moscow')
Возвращаемое значение
Column - временная метка в UTC
Пример использования
from pyspark.sql.functions import to_utc_timestamp, current_timestamp, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("to_utc_timestamp_example").getOrCreate()
# Создаем DataFrame с временем в разных часовых поясах
df = spark.range(1)
df = df.withColumn("moscow_time", current_timestamp())
df = df.withColumn("new_york_time", current_timestamp())
df = df.withColumn("tokyo_time", current_timestamp())
# Преобразуем в UTC
df = df.withColumn("utc_from_moscow", to_utc_timestamp("moscow_time", lit("Europe/Moscow")))
df = df.withColumn("utc_from_new_york", to_utc_timestamp("new_york_time", lit("America/New_York")))
df = df.withColumn("utc_from_tokyo", to_utc_timestamp("tokyo_time", lit("Asia/Tokyo")))
df.show(truncate=False)
# Результат:
# +---+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
# |id |moscow_time |new_york_time |tokyo_time |utc_from_moscow |utc_from_new_york |utc_from_tokyo |
# +---+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
# |0 |2024-03-20 13:00:00 |2024-03-20 06:00:00 |2024-03-20 19:00:00 |2024-03-20 10:00:00 |2024-03-20 10:00:00 |2024-03-20 10:00:00 |
# +---+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+-----------------------+
Примечания
- Принимает временную метку в любом часовом поясе
- Поддерживает все стандартные часовые пояса
- Возвращает NULL, если любой из параметров NULL
- Для обратного преобразования используйте
from_utc_timestamp()
- Учитывает переход на летнее время
- Полезно для стандартизации временных меток