date_part(field, source)
Описание
Функция date_part() извлекает указанную часть (поле) из даты, времени или временной метки.
Параметры
field: строка - поле для извлечения (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, etc.)source: Column - столбец с датой, временем или временной меткой
Возвращаемое значение
Column - извлеченное значение указанного поля
Пример использования
from pyspark.sql.functions import date_part, to_timestamp, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("date_part_example").getOrCreate()
# Создаем DataFrame с временными метками
data = [
    ("2023-01-15 14:30:45",),
    ("2023-02-28 23:59:59",),
    ("2023-12-31 00:00:00",)
]
df = spark.createDataFrame(data, ["timestamp_str"])
# Преобразуем строки в временные метки и извлекаем компоненты
df = df.withColumn("timestamp", to_timestamp("timestamp_str")) \
       .withColumn("year", date_part("YEAR", "timestamp")) \
       .withColumn("month", date_part("MONTH", "timestamp")) \
       .withColumn("day", date_part("DAY", "timestamp")) \
       .withColumn("hour", date_part("HOUR", "timestamp"))
df.show(truncate=False)
# Результат:
# +-------------------+-------------------+----+-----+---+----+
# |timestamp_str      |timestamp          |year|month|day|hour|
# +-------------------+-------------------+----+-----+---+----+
# |2023-01-15 14:30:45|2023-01-15 14:30:45|2023|1    |15 |14  |
# |2023-02-28 23:59:59|2023-02-28 23:59:59|2023|2    |28 |23  |
# |2023-12-31 00:00:00|2023-12-31 00:00:00|2023|12   |31 |0   |
# +-------------------+-------------------+----+-----+---+----+
 Примечания
- Возвращает NULL, если входное значение NULL
 - Поддерживаемые поля:
 - YEAR, MONTH, DAY
 - HOUR, MINUTE, SECOND
 - DAYOFWEEK, DAYOFYEAR
 - QUARTER, WEEK
 - Эквивалентна функции 
extract() - Для извлечения отдельных компонентов можно использовать:
 year()month()day()hour()- Полезно для:
 - Извлечения нескольких компонентов даты/времени
 - Гибкой работы с различными частями временной метки
 - Совместимости с PostgreSQL