कमेंटेड लाइनों को हटाना
आपके बॉस चाहते हैं कि आप एक नए डेटासेट पर कुछ जटिल parsing करें। यह डेटा ImageNet डेटासेट के annotation डेटा का प्रतिनिधित्व करता है, लेकिन खास तौर पर डॉग ब्रीड्स पर फोकस करता है और इमेज में उन्हें पहचानता है। किसी भी वास्तविक विश्लेषण से पहले, आपको अमान्य/गलत डेटा के कई हिस्सों को साफ़ करना होगा। डॉक्यूमेंट की सामान्य स्कीमा अज्ञात है, इसलिए आप पंक्तियों को एक ही कॉलम में इम्पोर्ट करना चाहेंगे ताकि त्वरित विश्लेषण हो सके।
शुरू करने के लिए, आपको डेटासेट में सभी कमेंटेड पंक्तियाँ हटानी हैं।
spark कॉन्टेक्स्ट और बेस CSV फ़ाइल (annotations.csv.gz) आपके लिए उपलब्ध हैं। col फंक्शन भी उपयोग के लिए उपलब्ध है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ डेटा क्लीनिंग
अभ्यास निर्देश
annotations.csv.gzफ़ाइल को एक DataFrame में इम्पोर्ट करें और row count निकालें। सेपरेटर कैरेक्टर | सेट करें.- डेटा में उन पंक्तियों की संख्या क्वेरी करें जो # से शुरू होती हैं.
- फ़ाइल को फिर से एक नए DataFrame में इम्पोर्ट करें, लेकिन इस बार options में comment कैरेक्टर दें ताकि सभी कमेंटेड पंक्तियाँ हट जाएँ.
- नए DataFrame की गिनती करें और जाँचें कि अंतर अपेक्षित के अनुसार है.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____
# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()
# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')
# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))