การคำนวณวันที่
ในตัวอย่างนี้ เราจะตรวจสอบความถี่ของข้อมูล ชุดข้อมูล Mortgage ควรมีข้อมูลรายสัปดาห์ แต่ลองยืนยันด้วยการ lag วันที่รายงาน แล้วนำมาหาผลต่างระหว่างวันที่
โปรดทราบว่าการสร้าง lagged feature จำเป็นต้องสร้าง window() ก่อน window() ช่วยให้คืนค่าสำหรับแต่ละระเบียนโดยอิงจากการคำนวณกับกลุ่มระเบียน ในที่นี้คืออัตราดอกเบี้ยสินเชื่อของรอบระยะเวลาก่อนหน้า
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Feature Engineering with PySpark
คำแนะนำการฝึกหัด
- แปลง
mort_df['DATE']ให้เป็นประเภทวันที่ด้วยto_date() - สร้าง window ด้วยฟังก์ชัน
Window()และใช้orderBy()เพื่อเรียงลำดับตามmort_df[DATE] - สร้างคอลัมน์ใหม่ชื่อ
DATE-1ด้วยwithColumn()โดย lag คอลัมน์DATEด้วยlag()และกำหนด window ด้วย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()