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