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()
- разница в годах