समस्या को हटाने के द्वारा सेट के एक समूह विलय करने के लिए एक नक्शा-को कम रास्ता है: मान लीजिए कि हमें समूह के एक समूह है: Set(1,2,3)
Set(1,2,3,4)
Set(4,5,6)
Set(1,2,3,4,6)
पर हम पाते हैं सब सबसेट हटा सकते हैं और अंत में करने की जरूरत है परिणाम: Set(4,5,6)
Set(1,2,3,4,6)
। (Set(1,2,3)
और Set(1,2,3,4)
दोनों के बाद से Set(1,2,3,4,6)
के सबसेट हैं, दोनों निकाल दिए जाते हैं।)एल्गोरिथ्म: सभी सबसेट
और लगता है कि सेट के तत्वों order
है, जो इंट, चार, आदि
हो सकता है यह करने के लिए संभव है यह एक मानचित्र-कम रास्ता में?
मानचित्र में इसे करने का कारण-कम तरीका यह है कि कभी-कभी समूह के समूह का आकार बहुत बड़ा होता है, जिससे एक मशीन की स्मृति में ऐसा करना संभव नहीं होता है। तो हम इसे मानचित्र-कम करने के तरीके में करने की उम्मीद करते हैं, यह बहुत ही कुशल नहीं हो सकता है, बल्कि काम करता है।
मेरे समस्या है:
मैं नक्शा-कम करने की प्रक्रिया समूह में कुंजी-मान पेयर के लिए एक महत्वपूर्ण परिभाषित करने के लिए पता नहीं कैसे ठीक से सेट करता है।
मुझे नहीं पता कि प्रक्रिया कब समाप्त होनी चाहिए, कि सभी सबसेट हटा दिए गए हैं।
EDIT:
डेटा का आकार भविष्य में बड़े बढ़ रही रखेंगे।
इनपुट या तो समूह के सेट वाले प्रत्येक पंक्ति के साथ सेट या एकाधिक लाइनों का समूह हो सकता है। वर्तमान में इनपुट
val data = RDD[Set]
है, मैं सबसे पहलेdata.collect()
करता हूं, जिसके परिणामस्वरूप सेट के कुल समूह में परिणाम होता है। लेकिन मैंRDD[Array[Set]]
में इनपुट की पीढ़ी को संशोधित कर सकता हूं, जो मुझे सेट के समूह वाले प्रत्येक पंक्ति के साथ कई लाइनें देगा।प्रत्येक सेट में तत्वों को प्रोग्राम के अन्य हिस्सों को संशोधित करके क्रमबद्ध किया जा सकता है।
आपका डेटा कितना बड़ा है? साथ ही, क्या प्रत्येक पंक्ति में सेट के समूह होते हैं? या समग्र इनपुट सेट का एक समूह है? कृपया स्पष्ट करें। इसके अलावा, सेट के भीतर तत्वों का आदेश दिया जाता है? उदाहरण के लिए (1,2,3,4) (4,2,3,1) के बजाय? –
@ मंजुनथबल्लूर मैं प्रश्न फिर से संपादित करता हूं। –