Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Ép kiểu mort_df['DATE'] sang kiểu date với to_date()
  • Tạo một window với hàm Window() và dùng orderBy() để sắp xếp theo mort_df[DATE]
  • Tạo cột mới DATE-1 bằng withColumn() bằng cách tạo độ trễ cho cột DATE với lag() và áp dụng cửa sổ bằng over(w)
  • Tính hiệu giữa DATEDATE-1 bằng datediff() 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()
Chỉnh sửa và Chạy Mã