Selecting
SQL के SELECT का Spark वेरिएंट .select() मेथड है। यह मेथड कई आर्ग्यूमेंट लेता है — हर उस कॉलम के लिए जिसे आप चुनना चाहते हैं। ये आर्ग्यूमेंट या तो स्ट्रिंग के रूप में कॉलम के नाम हो सकते हैं (हर कॉलम के लिए एक), या कॉलम ऑब्जेक्ट हो सकते हैं ( df.colName सिंटैक्स का उपयोग करके)। जब आप कॉलम ऑब्जेक्ट पास करते हैं, तो आप उस कॉलम पर जोड़ या घटाव जैसी क्रियाएँ कर सकते हैं ताकि उसके डेटा को बदल सकें — बिल्कुल .withColumn() के अंदर की तरह।
.select() और .withColumn() में फर्क यह है कि .select() केवल वही कॉलम लौटाता है जिन्हें आप निर्दिष्ट करते हैं, जबकि .withColumn() आपके द्वारा परिभाषित कॉलम के अलावा DataFrame के सभी कॉलम लौटाता है। अक्सर बेहतर रहता है कि किसी ऑपरेशन की शुरुआत में ही अनावश्यक कॉलम हटा दें ताकि डेटा रैंगलिंग करते समय अतिरिक्त डेटा ना ढोना पड़े। ऐसे में, आप .withColumn() नहीं बल्कि .select() का उपयोग करेंगे।
ध्यान रखें, आपके वर्कस्पेस में पहले से एक SparkSession spark नाम से मौजूद है, साथ ही Spark DataFrame flights भी है।
यह अभ्यास पाठ्यक्रम का हिस्सा है
PySpark की नींव
अभ्यास निर्देश
flightsसे"tailnum","origin", और"dest"कॉलम उनके नाम स्ट्रिंग के रूप में पास करके चुनें। इसेselected1के रूप में सेव करें।df.colNameसिंटैक्स का उपयोग करके"origin","dest", और"carrier"कॉलम चुनें, और फिर पहले से दिए गए दोनों फ़िल्टर (filterAऔरfilterB) लगाकर केवल SEA से PDX जाने वाली उड़ानें रखें। इसेselected2के रूप में सेव करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Select the first set of columns
selected1 = flights.select("____", "____", "____")
# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)
# Define first filter
filterA = flights.origin == "SEA"
# Define second filter
filterB = flights.dest == "PDX"
# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)