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
Hướng dẫn bài tập
- Pivot các giá trị của
ex_garage_listbằng cách group theo id bản ghiNOvớigroupBy(), dùng đoạn mã đã cho để tổng hợpconstant_valnhằm bỏ qua null và lấy giá trị đầu tiên. - Thực hiện left join
piv_dfvàodfdùngNOlà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ínhcolumnstrênpiv_df - Điền 0 cho các cột của dataframe đã pivot,
zfill_cols, bằng cách dùngfillna()vớisubset.
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=____)