開始使用免費開始

日期運算

在這個範例中,你要檢查資料的頻率。Mortgage 資料集理論上是每週一次的資料,但我們來確認一下:先對報告日期做落後值,接著計算兩個日期之間的差。

回想一下,若要建立落後期的特徵,需要先建立一個 window()window() 可以讓你根據一組紀錄進行計算,並為每筆紀錄回傳一個值;在這裡,就是前一期的房貸利率。

本練習屬於課程

使用 PySpark 進行特徵工程

檢視課程

練習說明

  • 使用 to_date()mort_df['DATE'] 轉成日期型別。
  • Window() 建立一個視窗,並用 orderBy()mort_df[DATE] 排序。
  • 使用 withColumn()lag()DATE 欄位取落後值,建立新欄位 DATE-1,並搭配 over(w) 套用視窗。
  • 使用 datediff() 計算 DATEDATE-1 的差值,並將結果命名為 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()
編輯並執行程式碼