Skip to content

next_day(date, day_of_week)

Описание

Функция next_day() возвращает дату следующего указанного дня недели после заданной даты.

Параметры

  • date: Column - столбец с датами
  • day_of_week: String - день недели (например, "Mon", "Monday", "MONDAY")

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

Date - дата следующего указанного дня недели

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

from pyspark.sql.functions import next_day
from pyspark.sql import SparkSession
from datetime import datetime

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

# Создаем DataFrame с датами
data = [
    (datetime(2023, 1, 15),),   # Воскресенье
    (datetime(2023, 1, 16),),   # Понедельник
    (datetime(2023, 1, 17),)    # Вторник
]
df = spark.createDataFrame(data, ["date"])

# Находим следующий понедельник после каждой даты
result = df.select(
    "date",
    next_day("date", "Mon").alias("next_monday")
).show(truncate=False)

# Результат:
# +-------------------+-----------+
# |date               |next_monday|
# +-------------------+-----------+
# |2023-01-15 00:00:00|2023-01-16 |
# |2023-01-16 00:00:00|2023-01-23 |
# |2023-01-17 00:00:00|2023-01-23 |
# +-------------------+-----------+

Примечания

  • NULL значения возвращают NULL
  • День недели можно указывать в любом регистре и в сокращенной или полной форме
  • Если текущий день совпадает с искомым, возвращается дата следующей недели
  • Для работы с датами также используйте:
  • date_add() для добавления дней
  • date_sub() для вычитания дней
  • dayofweek() для получения номера дня недели
  • dayofyear() для получения номера дня в году
  • weekofyear() для получения номера недели в году