Skip to content

years_between(end, start)

Описание

Функция years_between() вычисляет количество полных лет между двумя датами.

Параметры

  • end: Column - конечная дата
  • start: Column - начальная дата

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

Column - количество полных лет между датами (тип Double)

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

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

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

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

# Преобразуем строки в даты и вычисляем разницу в годах
result = df.withColumn(
    "years_diff",
    years_between(to_date("end_date"), to_date("start_date"))
)
result.show(truncate=False)

# Результат:
# +----------+----------+----------+
# |end_date  |start_date|years_diff|
# +----------+----------+----------+
# |2023-01-01|2020-01-01|3.0       |
# |2023-12-31|2020-01-01|3.0       |
# |2023-01-01|2022-12-31|0.0       |
# +----------+----------+----------+

Примечания

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