Tính toán với ngày
Trong ví dụ này, bạn sẽ kiểm tra tần suất của dữ liệu. Bộ dữ liệu Mortgage được cho là có dữ liệu theo tuần, nhưng hãy xác thực bằng cách lấy độ trễ của ngày báo cáo rồi tính hiệu giữa các ngày.
Nhắc lại: để tạo một đặc trưng có độ trễ, bạn cần tạo một window(). window() cho phép bạn trả về một giá trị cho mỗi bản ghi dựa trên phép tính trên một nhóm bản ghi; trong trường hợp này là mức lãi suất thế chấp của kỳ trước.
Bài tập này là một phần của khóa học
Feature Engineering với PySpark
Hướng dẫn bài tập
- Ép kiểu
mort_df['DATE']sang kiểu date vớito_date() - Tạo một window với hàm
Window()và dùngorderBy()để sắp xếp theomort_df[DATE] - Tạo cột mới
DATE-1bằngwithColumn()bằng cách tạo độ trễ cho cộtDATEvớilag()và áp dụng cửa sổ bằngover(w) - Tính hiệu giữa
DATEvàDATE-1bằngdatediff()và đặt tên làDays_Between_Report
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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()