गलत Joins की जाँच
यदि हम सावधान न रहें तो Joins चुपचाप गलत हो सकते हैं। यानी वे error नहीं देंगे, बल्कि अपेक्षा से अधिक या कम रिकॉर्ड्स के साथ बिगड़ा हुआ डेटा लौटाएँगे। चलिए देखते हैं कि गलत तरीके से join करने से आपका डेटासेट कैसे खराब हो सकता है।
इस उदाहरण में हम देखेंगे कि क्या होता है जब आप दो dataframes को ऐसे join करते हैं जिनकी join keys की precision एक जैसी नहीं है, और सही तथा गलत join के बीच रिकॉर्ड काउंट्स की तुलना करेंगे।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ Feature Engineering
अभ्यास निर्देश
df_orig(precision सही करने से पहले वाला dataframe) औरwalk_dfके बीच एक join बनाएँ, जो respective dataframes मेंlongitudeऔरlatitudeपर match करता है।where()औरisNull()का उपयोग करकेdf['walkscore']औरcorrect_join['walkscore']में missing values की गिनती करें। आप देखेंगे कि बहुत-सी missing values हैं क्योंकि हमारे datatypes और precision मेल नहीं खाते।dfऔरwalk_dfके बीच एक join बनाएँ जो केवलlongitudeपर match करता हो।count()के साथfew_keys_dfऔरcorrect_join_dfमें रिकॉर्ड्स की संख्या गिनें। आप देखेंगे कि मान बहुत ज़्यादा हैं क्योंकि हमने matching को ठीक से constrain नहीं किया है।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Join on mismatched keys precision
wrong_prec_cond = [____ == ____, ____ == ____]
wrong_prec_df = ____.join(____, on=wrong_prec_cond, how='left')
# Compare bad join to the correct one
print(wrong_prec_df.____(____.____()).count())
print(correct_join_df.____(____.____).count())
# Create a join on too few keys
few_keys_cond = [____ == ____]
few_keys_df = ____.join(____, on=few_keys_cond, how='left')
# Compare bad join to the correct one
print("Record Count of the Too Few Keys Join Example: " + str(____.____()))
print("Record Count of the Correct Join Example: " + str(____.____()))