अपाचे स्पार्क CombByKey समझाया



यह Spark Hadoop ब्लॉग बताता है कि आप सभी को Apache Spark CombByKey के बारे में जानना चाहिए। CombByKey पद्धति का उपयोग करके प्रति छात्र औसत अंक प्राप्त करें।

पृथ्वीराज बोस द्वारा योगदान दिया गया

शुरुआती के लिए एमएस sql ट्यूटोरियल

स्पार्क एक लाइटनिंग-फास्ट क्लस्टर कंप्यूटिंग ढांचा है जिसे तेजी से कम्प्यूटेशन और पेशेवरों की मांग के लिए डिज़ाइन किया गया है आज बाजार में पर्याप्त है।यहाँ स्पार्क में एक शक्तिशाली एपीआई है जो कम्बाइकबाय





एपीआई पैमाना: org.apache.spark.PairRDDFunctions.combineByKey

पायथन एपीआई: pyspark.RDD.combineByKey



एपीआई तीन कार्य करता है (के रूप में) लंबोदर भाव में है अजगर या अनाम फ़ंक्शन में है सीढ़ी ), अर्थात्,

  1. कॉम्बिनेशन फ़ंक्शन बनाएं: x
  2. मर्ज मान फ़ंक्शन: y
  3. विलय कॉम्बिनर्स फ़ंक्शन: z

और एपीआई प्रारूप है CombByKey (x, y, z)

आइए एक उदाहरण देखें (स्काला में)। पूर्ण स्काला स्रोत पाया जा सकता है यहाँ



हमारा उद्देश्य प्रति छात्र औसत अंक प्राप्त करना है।

यहाँ एक प्लेसहोल्डर क्लास है स्कोरडिटेल एक विषय के स्कोर के साथ छात्रों के नाम को संग्रहीत करना।

Scoredetail-spark-combinebykey

कुछ परीक्षण डेटा उत्पन्न होते हैं और कुंजी-जोड़ी मूल्यों में परिवर्तित हो जाते हैं कुंजी = छात्रों का नाम तथा मान = स्कोरडेल उदाहरण

फिर हम एक Pair RDD बनाते हैं जैसा कि नीचे दिए गए कोड के टुकड़े में दिखाया गया है। बस प्रयोग के लिए, मैंने आकार 3 का हैश पार्टीशनर बनाया है, इसलिए तीनों विभाजनों में क्रमशः 2, 2 और 4 प्रमुख जोड़े होंगे। यह उस खंड में हाइलाइट किया गया है जहां हम प्रत्येक विभाजन का पता लगाते हैं।

अब हम प्रत्येक विभाजन का पता लगा सकते हैं। पहली पंक्ति प्रत्येक विभाजन की लंबाई (विभाजन के लिए प्रमुख मूल्य जोड़े की संख्या) और दूसरी पंक्ति प्रत्येक विभाजन की सामग्री को प्रिंट करती है।

और यहाँ का समापन आंदोलन है जहाँ हम विभाजन के दौरान स्कोर के संयोजन के बाद प्रति छात्र औसत स्कोर की गणना करते हैं।

उपरोक्त कोड प्रवाह इस प्रकार है…
पहले हमें एक कॉम्बिनेशन फ़ंक्शन बनाने की आवश्यकता होती है जो अनिवार्य रूप से प्रत्येक विभाजन में सामने आने वाली प्रत्येक कुंजी के लिए एक टपल = (मूल्य, 1) है। इस चरण के बाद एक विभाजन में हर (कुंजी, मूल्य) के लिए आउटपुट है (कुंजी, (मूल्य, 1))।

फिर अगले पुनरावृत्ति पर प्रत्येक कुंजी के लिए मर्ज वैल्यू फ़ंक्शन का उपयोग करके प्रति विभाजन के कॉम्बिनेशन फ़ंक्शन को मर्ज किया जाता है। इस चरण के बाद हर विभाजन में हर (की, वैल्यू, 1) का आउटपुट (की, (कुल, गिनती)) होता है।

अंत में मर्ज कॉम्बिनर फ़ंक्शन, निष्पादकों में विभाजन के सभी मूल्यों को मिला देता है और चालक को डेटा वापस भेजता है। इस चरण के बाद हर पार्टीशन (कुंजी, (कुल, गिनती)) का विभाजन प्रति आउटपुट है
(कुंजी, (TotalAcrossAllPartitions, countAcrossAllPartitions))।

नक्शा रूपांतरित करता है
(की, टुपल) = (की, (कुल एस्कॉर्टपार्टिशन, काउंटआर्केलप्लिमेंट्स)
कुंजी के अनुसार औसत की गणना करना (कुंजी, tuple._1 / tuple._2)।

अंतिम पंक्ति ड्राइवर के अंत में सभी छात्रों के लिए औसत अंक प्रिंट करती है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? उन्हें टिप्पणी अनुभाग में उल्लेख करें और हम आपके पास वापस आ जाएंगे।

संबंधित पोस्ट:

स्पार्क में विभाजन का प्रदर्शन