2016-03-02 5 views
9

मैं आरडीडी पर glom() विधि भर आया हूं। प्रलेखनएक ग्लोम क्या है? यह नक्शापार्टिशन से अलग कैसे है?

वापसी एक RDD एक सरणी

glom विभाजन भर में डेटा शफ़ल करता है या यह केवल एक सरणी के रूप में विभाजन डेटा वापस करता है में प्रत्येक विभाजन के भीतर सभी तत्वों वालों द्वारा बनाई अनुसार? बाद के मामले में, मेरा मानना ​​है कि इसे mapPartitions का उपयोग करके हासिल किया जा सकता है।

मैं यह भी जानना चाहूंगा कि glom से कोई उपयोग करने वाले मामले हैं या नहीं।

+0

@ zero323 एक अच्छे तरीके से समझाया गया ... आईपी जोड़ना चाहता था। टिप i.e. 'ग्लोम' उपयोगी होता है जब आप मैट्रिक्स लाइब्रेरी का उपयोग करके आरडीडी परिचालनों को कार्यान्वित करना चाहते हैं जिन्हें सरणी –

उत्तर

7

glom विभाजन

नहीं भर में डेटा शफ़ल करता है, यह इस दूसरी स्थिति है, तो ऐसा नहीं करता

मुझे विश्वास है कि एक ही mapPartitions का उपयोग कर

प्राप्त किया जा सकता

यह कर सकता है:

rdd.mapPartitions(iter => Iterator(_.toArray)) 

लेकिन एक ही चीज़ map, flatMap या filter जैसे किसी भी गैर शफल परिवर्तन पर लागू होती है।

यदि ग्लोब से लाभ उठाने वाले कोई भी मामले हैं।

कोई भी स्थिति जहां आपको एक से अधिक बार ट्रैवर्स करने योग्य रूप में विभाजन डेटा तक पहुंचने की आवश्यकता होती है।

+0

पर संचालित करने के लिए अनुकूलित किया गया है, क्या हम मानचित्र के आउटपुट या मानचित्र या फ़िल्टर के आउटपुट से एक से अधिक बार नहीं जा सकते हैं? – nagendra

+0

बिल्कुल मेरा मतलब क्या नहीं है। आइए कहें कि आपके पास {x <- बनाम; के लिए एक कार्य है (बनाम: टी) => वाई <- बनाम} उपज (एक्स, वाई) 'और आप इसे पूर्ण विभाजन में लागू करना चाहते हैं। आप नक्शाचित्रों के अंदर इटरेटर को परिवर्तित करने के बजाय बस 'rdd.glom.map (f)' कर सकते हैं। लेकिन सामान्य रूप से यह एक महत्वपूर्ण कार्य नहीं है। – zero323

संबंधित मुद्दे

 संबंधित मुद्दे