weekday(date)
Описание
Функция weekday()
возвращает день недели для указанной даты (0 = понедельник, 6 = воскресенье).
Параметры
date
: Column - дата или временная метка
Возвращаемое значение
Column - день недели (0-6)
Пример использования
from pyspark.sql.functions import weekday, to_date, lit
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("weekday_example").getOrCreate()
# Создаем DataFrame с датами
data = [
("2024-03-18",), # Понедельник
("2024-03-19",), # Вторник
("2024-03-20",), # Среда
("2024-03-21",), # Четверг
("2024-03-22",), # Пятница
("2024-03-23",), # Суббота
("2024-03-24",) # Воскресенье
]
df = spark.createDataFrame(data, ["date_str"])
# Преобразуем строки в даты и получаем день недели
df = df.withColumn("date", to_date("date_str"))
df = df.withColumn("day_of_week", weekday("date"))
df.show()
# Результат:
# +----------+----------+-----------+
# | date_str| date|day_of_week|
# +----------+----------+-----------+
# |2024-03-18|2024-03-18| 0|
# |2024-03-19|2024-03-19| 1|
# |2024-03-20|2024-03-20| 2|
# |2024-03-21|2024-03-21| 3|
# |2024-03-22|2024-03-22| 4|
# |2024-03-23|2024-03-23| 5|
# |2024-03-24|2024-03-24| 6|
# +----------+----------+-----------+
Примечания
- Возвращает 0 для понедельника, 6 для воскресенья
- Возвращает NULL, если входное значение NULL
- Отличается от
dayofweek()
, который возвращает 1 для воскресенья, 7 для субботы - Полезно для анализа данных по дням недели
- Часто используется для фильтрации и группировки данных