DataFrame कॉलम्स में बदलाव
पहले, आपने वे सभी पंक्तियाँ फ़िल्टर कर दी थीं जो किसी सामान्य नाम जैसी नहीं लगती थीं. अब, उसी काम के आधार पर आपकी मैनेजर ने आपसे दो नए कॉलम बनाने को कहा है - first_name और last_name. वह चाहती हैं कि आप VOTER_NAME कॉलम को किसी भी space कैरेक्टर पर शब्दों में बाँट दें. आखिरी शब्द को आप last_name मानेंगे, और बाकी सभी शब्दों को मिलाकर first_name. इस अभ्यास में आप कुछ नए फंक्शंस इस्तेमाल करेंगे, जिनमें .split(), .size(), और .getItem() शामिल हैं. .getItem(index) एक integer वैल्यू लेता है और कॉलम में दिए हुए इंडेक्स का आइटम लौटाता है. .split() और .size() फंक्शंस pyspark.sql.functions लाइब्रेरी में हैं.
कृपया ध्यान दें कि ऐसे ऑपरेशंस अक्सर आपके use case पर निर्भर होते हैं. कई बार डेटा को एक फ़ॉर्मेट में ढालना, उस फ़ॉर्मेट के सूक्ष्म विवरणों से ज़्यादा महत्वपूर्ण होता है. डेटा क्लीनिंग शायद ही कभी सिर्फ एक व्यक्ति के लिए की जाती है — किसी परिभाषित फ़ॉर्मेट से मेल खाने पर बाद में डेटा शेयर करना आसान हो जाता है (जैसे, Paul को नामों की चिंता नहीं करनी पड़ेगी — Mary ने पहले ही डेटासेट साफ़ कर दिया है).
पिछले अभ्यास से फ़िल्टर किया हुआ voter DataFrame voter_df के रूप में उपलब्ध है. pyspark.sql.functions लाइब्रेरी F उपनाम (alias) के साथ उपलब्ध है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark के साथ डेटा क्लीनिंग
अभ्यास निर्देश
splitsनाम का एक नया कॉलम जोड़ें जिसमें संभावित नामों की list हो.getItem()मेथड का उपयोग करकेfirst_nameनाम का नया कॉलम बनाएँ.splitslist की आखिरी एंट्री लें औरlast_nameनाम का कॉलम बनाएँ.splitsकॉलम को drop करें और नयाvoter_dfदिखाएँ.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Add a new column called splits separated on whitespace
voter_df = voter_df.withColumn(____, F.____(voter_df.VOTER_NAME, '\s+'))
# Create a new column called first_name based on the first item in splits
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(____)
# Get the last entry of the splits list and create a column called last_name
voter_df = voter_df.withColumn(____, voter_df.splits.getItem(F.____('splits') - ____))
# Drop the splits column
voter_df = voter_df.____('splits')
# Show the voter_df DataFrame
voter_df.show()