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

Pivot & Join

Biết cách explode và pivot một trường hợp hợp là rất hữu ích, nhưng bạn sẽ chỉ còn một dataframe gồm các giá trị đã pivot. Để thực sự hữu dụng, bạn cần join lại với bộ dữ liệu gốc! Sau khi join, chúng ta sẽ có nhiều giá trị NULL ở các cột mới tạo. Vì biết bối cảnh tạo ra chúng, bạn có thể yên tâm điền giá trị 0, do thuộc tính mới hoặc là có, hoặc là không.

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

  • Pivot các giá trị của ex_garage_list bằng cách group theo id bản ghi NO với groupBy(), dùng đoạn mã đã cho để tổng hợp constant_val nhằm bỏ qua null và lấy giá trị đầu tiên.
  • Thực hiện left join piv_df vào df dùng NO làm điều kiện join.
  • Tạo danh sách các cột zfill_cols để điền 0 bằng cách dùng thuộc tính columns trên piv_df
  • Điền 0 cho các cột của dataframe đã pivot, zfill_cols, bằng cách dùng fillna() với subset.

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 coalesce, first

# Pivot 
piv_df = ex_df.____(____).____(____).agg(coalesce(first(____)))

# Join the dataframes together and fill null
joined_df = ____.join(____, on='NO', how=____)

# Columns to zero fill
zfill_cols = ____.____

# Zero fill the pivoted values
zfilled_df = joined_df.____(0, subset=____)
Chỉnh sửa và Chạy Mã