Skip to content

date_sub()

Описание

Функция date_sub() вычитает указанное количество дней из даты.

Параметры

  • date: Column - дата в формате DateType
  • days: Integer - количество дней для вычитания (может быть отрицательным для добавления)

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

Date - новая дата после вычитания дней

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

from pyspark.sql import SparkSession
from pyspark.sql.functions import date_sub, current_date

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

# Создаем DataFrame
data = [
    (1,),
    (2,),
    (3,)
]
df = spark.createDataFrame(data, ["id"])

# Вычитаем дни из текущей даты
result = df.select(
    "id",
    current_date().alias("current_date"),
    date_sub(current_date(), 7).alias("date_minus_7_days"),
    date_sub(current_date(), -7).alias("date_plus_7_days")
).show()

# Результат:
# +---+------------+----------------+----------------+
# | id|current_date|date_minus_7_days|date_plus_7_days|
# +---+------------+----------------+----------------+
# |  1|  2024-01-01|      2023-12-25|      2024-01-08|
# |  2|  2024-01-01|      2023-12-25|      2024-01-08|
# |  3|  2024-01-01|      2023-12-25|      2024-01-08|
# +---+------------+----------------+----------------+

Примечания

  • Функция работает только с датами в формате DateType
  • Для добавления дней используйте отрицательное значение параметра days
  • Для работы с месяцами используйте add_months()
  • Для вычисления разницы между датами используйте datediff()
  • Для форматирования даты используйте date_format()
  • Для извлечения компонентов даты используйте year(), month(), day()