Skip to content

to_timestamp(col, format=None)

Описание

Функция to_timestamp() преобразует строку во временную метку, используя указанный формат.

Параметры

  • col: Column - столбец со строками, содержащими даты и время
  • format: String (опционально) - формат временной метки (по умолчанию 'yyyy-MM-dd HH:mm:ss')

Возвращаемое значение

Timestamp - преобразованная временная метка

Пример использования

from pyspark.sql.functions import to_timestamp
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("to_timestamp_example").getOrCreate()

# Создаем DataFrame со строками временных меток
data = [
    ("2023-01-15 12:30:45",),
    ("15/01/2023 12:30:45",),
    ("2023.01.15 12:30:45",)
]
df = spark.createDataFrame(data, ["timestamp_str"])

# Преобразуем строки во временные метки с разными форматами
result = df.select(
    "timestamp_str",
    to_timestamp("timestamp_str").alias("default_format"),
    to_timestamp("timestamp_str", "dd/MM/yyyy HH:mm:ss").alias("custom_format1"),
    to_timestamp("timestamp_str", "yyyy.MM.dd HH:mm:ss").alias("custom_format2")
).show(truncate=False)

# Результат:
# +-------------------+-------------------+-------------------+-------------------+
# |timestamp_str      |default_format     |custom_format1     |custom_format2     |
# +-------------------+-------------------+-------------------+-------------------+
# |2023-01-15 12:30:45|2023-01-15 12:30:45|2023-01-15 12:30:45|2023-01-15 12:30:45|
# |15/01/2023 12:30:45|null              |2023-01-15 12:30:45|null              |
# |2023.01.15 12:30:45|null              |null              |2023-01-15 12:30:45|
# +-------------------+-------------------+-------------------+-------------------+

Примечания

  • NULL значения возвращают NULL
  • Если формат не указан, используется формат по умолчанию 'yyyy-MM-dd HH:mm:ss'
  • Если строка не соответствует указанному формату, возвращается NULL
  • Для работы с временными метками также используйте:
  • to_date() для преобразования в дату
  • date_format() для форматирования временной метки
  • year() для извлечения года
  • month() для извлечения месяца
  • day() для извлечения дня
  • hour() для извлечения часа
  • minute() для извлечения минут
  • second() для извлечения секунд