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