Rekenen met datums
In dit voorbeeld gaan we de frequentie van onze data controleren. De Mortgage-gegevensset zou wekelijks zijn, maar laten we dat zeker weten door de rapportagedatum te laggen en vervolgens het verschil tussen de datums te berekenen.
Onthoud dat we om een gelagde feature te maken een window() moeten creëren. Met window() kun je voor elk record een waarde teruggeven op basis van een berekening over een groep records, in dit geval het hypotheekpercentage van de vorige periode.
Deze oefening maakt deel uit van de cursus
Feature Engineering met PySpark
Oefeninstructies
- Cast
mort_df['DATE']naar het datumtype metto_date() - Maak een window met de functie
Window()en gebruikorderBy()om te sorteren opmort_df[DATE] - Maak een nieuwe kolom
DATE-1metwithColumn()door de kolomDATEte laggen metlag()en gebruikover(w)voor de window - Bereken het verschil tussen
DATEenDATE-1metdatediff()en noem hetDays_Between_Report
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
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()