Pivot & Join
किसी compound फ़ील्ड को explode और pivot करना उपयोगी है, लेकिन उससे आपके पास केवल उन्हीं पिवट किए गए मानों वाला dataframe रह जाता है। इसे सच में मूल्यवान बनाने के लिए आपको उसे मूल डेटासेट से पुनः join करना होगा! डेटासेट्स को जॉइन करने के बाद, नई बनी कॉलमों में बहुत से NULL मान होंगे। क्योंकि हमें उनके बनने का संदर्भ पता है, हम उन्हें निश्चिंत होकर शून्य से भर सकते हैं — यानी नया एट्रिब्यूट है या नहीं है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ Feature Engineering
अभ्यास निर्देश
groupBy()के साथ रिकॉर्ड आईडीNOपर group करकेex_garage_listके मानों को pivot करें। nulls को नज़रअंदाज़ करने और पहला मान लेने के लिए दिए गए कोड सेconstant_valको aggregate करें।NOको join शर्त के रूप में उपयोग करते हुएpiv_dfकोdfसे left join करें।piv_dfकेcolumnsएट्रिब्यूट का उपयोग करके ज़ीरो-फिल करने हेतु कॉलमों की सूचीzfill_colsबनाएँ।fillna()के साथsubsetदेकर पिवट किए गए dataframe की कॉलमोंzfill_colsको ज़ीरो-फिल करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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=____)