datediff(end_date, start_date)
Описание
Функция datediff() вычисляет разницу в днях между двумя датами.
Параметры
end_date: Column - столбец с конечными датамиstart_date: Column - столбец с начальными датами
Возвращаемое значение
Integer - количество дней между датами (end_date - start_date)
Пример использования
from pyspark.sql.functions import datediff
from pyspark.sql import SparkSession
from datetime import datetime
# Создаем SparkSession
spark = SparkSession.builder.appName("datediff_example").getOrCreate()
# Создаем DataFrame с парами дат
data = [
    (datetime(2023, 1, 15), datetime(2023, 1, 1)),   # 14 дней
    (datetime(2023, 2, 1), datetime(2023, 1, 1)),    # 31 день
    (datetime(2023, 12, 31), datetime(2023, 1, 1))   # 364 дня
]
df = spark.createDataFrame(data, ["end_date", "start_date"])
# Вычисляем разницу в днях между датами
result = df.select(
    "start_date",
    "end_date",
    datediff("end_date", "start_date").alias("days_diff")
).show(truncate=False)
# Результат:
# +-------------------+-------------------+---------+
# |start_date         |end_date           |days_diff|
# +-------------------+-------------------+---------+
# |2023-01-01 00:00:00|2023-01-15 00:00:00|14       |
# |2023-01-01 00:00:00|2023-02-01 00:00:00|31       |
# |2023-01-01 00:00:00|2023-12-31 00:00:00|364      |
# +-------------------+-------------------+---------+
 Примечания
- NULL значения возвращают NULL
 - Результат может быть отрицательным, если end_date раньше start_date
 - Функция учитывает количество дней в месяце и високосные годы
 - Для работы с датами также используйте:
 date_add()для добавления днейdate_sub()для вычитания днейadd_months()для добавления месяцевmonths_between()для вычисления разницы в месяцахyear()для извлечения годаmonth()для извлечения месяцаday()для извлечения дня