Działania na datach
W tym ćwiczeniu sprawdzimy, z jaką częstotliwością pojawiają się dane. Zbiór danych Mortgage powinien zawierać dane tygodniowe – upewnijmy się co do tego, przesuwając datę raportu o jeden okres wstecz, a następnie obliczając różnicę między datami.
Pamiętaj, że do utworzenia cechy opóźnionej potrzebujesz window(). Funkcja window() pozwala zwrócić wartość dla każdego rekordu na podstawie obliczeń wykonanych na grupie rekordów – w tym przypadku na stopie hipotecznej z poprzedniego okresu.
To ćwiczenie jest częścią kursu
Inżynieria cech z PySpark
Instrukcje do ćwiczenia
- Rzutuj
mort_df['DATE']na typ daty za pomocąto_date() - Utwórz okno funkcją
Window()i użyjorderBy(), aby posortować dane wedługmort_df[DATE] - Dodaj nową kolumnę
DATE-1za pomocąwithColumn(), przesuwając kolumnęDATEo jeden okres wstecz funkcjąlag(), a następnie zastosuj okno przy użyciuover(w) - Oblicz różnicę między
DATEaDATE-1za pomocądatediff()i nazwij wynikową kolumnęDays_Between_Report
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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()