Обчислення з датами
У цьому прикладі ми перевіримо частоту наших даних. Набір Mortgage має бути тижневим, але переконаймося в цьому: зсуньте дату звіту назад на один період, а потім візьміть різницю між датами.
Згадайте, що щоб створити зсунуту ознаку, потрібно створити window(). window() дає змогу повертати значення для кожного запису на основі обчислення над групою записів — у нашому випадку це ставка іпотеки за попередній період.
Ця вправа є частиною курсу
Опрацювання ознак у PySpark
Інструкції до вправи
- Приведіть
mort_df['DATE']до типу дати за допомогоюto_date() - Створіть вікно за допомогою функції
Window()і скористайтесяorderBy(), щоб відсортувати заmort_df[DATE] - Створіть новий стовпець
DATE-1за допомогоюwithColumn(), зсунувши стовпецьDATEфункцієюlag()і застосувавши вікно черезover(w) - Обчисліть різницю між
DATEіDATE-1за допомогоюdatediff()та назвіть їїDays_Between_Report
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
from pyspark.sql.functions import lag, datediff, to_date
from pyspark.sql.window import Window
# Cast data type
mort_df = mort_df.withColumn(____, ____(____))
# Create window
w = ____().____(____)
# Create lag column
mort_df = mort_df.____(____, ____(____, count=1).____(w))
# Calculate difference between date columns
mort_df = mort_df.withColumn(____, ____(____, ____))
# Print results
mort_df.select('Days_Between_Report').distinct().show()