Skip to content

to_date(col, format=None)

Описание

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

Параметры

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

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

Date - преобразованная дата

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

from pyspark.sql.functions import to_date
from pyspark.sql import SparkSession

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

# Создаем DataFrame со строками дат
data = [
    ("2023-01-15",),
    ("15/01/2023",),
    ("2023.01.15",)
]
df = spark.createDataFrame(data, ["date_str"])

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

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

Примечания

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