trunc(date, format)
Описание
Функция trunc() обрезает дату до указанной единицы времени (год, квартал, месяц, неделя).
Параметры
date: Column - столбец с датамиformat: String - единица времени для обрезки ('year', 'quarter', 'month', 'week')
Возвращаемое значение
Date - обрезанная дата
Пример использования
from pyspark.sql.functions import trunc
from pyspark.sql import SparkSession
from datetime import datetime
# Создаем SparkSession
spark = SparkSession.builder.appName("trunc_example").getOrCreate()
# Создаем DataFrame с датами
data = [
    (datetime(2023, 1, 15),),   # 15 января
    (datetime(2023, 4, 15),),   # 15 апреля
    (datetime(2023, 7, 15),),   # 15 июля
    (datetime(2023, 10, 15),)   # 15 октября
]
df = spark.createDataFrame(data, ["date"])
# Обрезаем даты до разных единиц времени
result = df.select(
    "date",
    trunc("date", "year").alias("year"),
    trunc("date", "quarter").alias("quarter"),
    trunc("date", "month").alias("month"),
    trunc("date", "week").alias("week")
).show(truncate=False)
# Результат:
# +-------------------+----------+------------+----------+----------+
# |date               |year      |quarter     |month     |week      |
# +-------------------+----------+------------+----------+----------+
# |2023-01-15 00:00:00|2023-01-01|2023-01-01 |2023-01-01|2023-01-09|
# |2023-04-15 00:00:00|2023-01-01|2023-04-01 |2023-04-01|2023-04-10|
# |2023-07-15 00:00:00|2023-01-01|2023-07-01 |2023-07-01|2023-07-10|
# |2023-10-15 00:00:00|2023-01-01|2023-10-01 |2023-10-01|2023-10-09|
# +-------------------+----------+------------+----------+----------+
 Примечания
- NULL значения возвращают NULL
 - Доступные форматы:
 - 'year' - обрезает до начала года
 - 'quarter' - обрезает до начала квартала
 - 'month' - обрезает до начала месяца
 - 'week' - обрезает до начала недели (понедельник)
 - Для работы с датами также используйте:
 date_trunc()для обрезки временных метокyear()для извлечения годаmonth()для извлечения месяцаquarter()для извлечения кварталаdayofweek()для извлечения дня недели