Skip to content

date_diff(endDate, startDate)

Описание

Функция date_diff() вычисляет разницу в днях между двумя датами.

Параметры

  • endDate: Column - конечная дата
  • startDate: Column - начальная дата

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

Column - количество дней между датами (целое число)

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

from pyspark.sql.functions import date_diff, to_date, lit
from pyspark.sql import SparkSession

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

# Создаем DataFrame с датами
data = [
    ("2023-01-01", "2023-01-10"),
    ("2023-02-15", "2023-03-01"),
    ("2023-12-01", "2023-12-31")
]
df = spark.createDataFrame(data, ["start_date", "end_date"])

# Преобразуем строки в даты
df = df.withColumn("start_date", to_date("start_date"))
df = df.withColumn("end_date", to_date("end_date"))

# Вычисляем разницу в днях
df = df.withColumn("days_diff", date_diff("end_date", "start_date"))
df.show(truncate=False)

# Результат:
# +----------+----------+---------+
# |start_date|end_date  |days_diff|
# +----------+----------+---------+
# |2023-01-01|2023-01-10|9        |
# |2023-02-15|2023-03-01|14       |
# |2023-12-01|2023-12-31|30       |
# +----------+----------+---------+

Примечания

  • Возвращает NULL, если любая из дат NULL
  • Результат может быть отрицательным, если endDate раньше startDate
  • Полезно для:
  • Вычисления длительности периодов
  • Анализа временных интервалов
  • Планирования сроков
  • Связанные функции:
  • datediff() - альтернативный вариант функции
  • months_between() - разница в месяцах
  • years_between() - разница в годах