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()
для получения номера недели в году