2015-10-04 10 views
11

कैसे विभाजित करता है तो मान लें कि आईव 3000 पंक्तियों के साथ एक rdd मिला है। 2000 की पहली पंक्तियां कक्षा 1 के हैं और 1000 अंतिम पंक्तियां कक्षा 2 के हैं। आरडीडी 100 विभाजनों में विभाजित है।स्पार्क्स RDD.randomSplit वास्तव में आरडीडी

जब RDD.randomSplit(0.8,0.2)

बुला समारोह भी RDD शफ़ल करता है? हम विभाजन को बस 20% लगातार आरडीडी का नमूना देते हैं? या क्या यह विभाजन का 20% यादृच्छिक रूप से चुनता है?

आदर्श रूप से परिणामी विभाजन में मूल आरडीडी के समान वर्ग वितरण होता है। (अर्थात 2: 1)

धन्यवाद

उत्तर

18

प्रत्येक रेंज weights सरणी द्वारा परिभाषित के लिए वहाँ एक अलग mapPartitionsWithIndex परिवर्तन जो विभाजन को बरकरार रखता है है।

प्रत्येक विभाजन BernoulliCellSamplers के सेट का उपयोग करके नमूना है। प्रत्येक विभाजन के लिए यह किसी दिए गए विभाजन के तत्वों पर पुनरावृत्ति करता है और अगले यादृच्छिक Double का मान सामान्यीकृत वजन से परिभाषित एक दी गई सीमा में है, तो आइटम का चयन करता है। किसी दिए गए विभाजन के लिए सभी नमूने एक ही आरएनजी बीज का उपयोग करते हैं। यह इसका मतलब है:

  • एक RDD शफ़ल नहीं है
  • अन्य निरंतर ब्लॉक नहीं ले से संयोग से
  • प्रत्येक विभाजन
  • लेता से नमूने के तौर पर लेता है गैर-अतिव्यापी नमूनों
  • डेटा
पर एन-स्प्लिट पास की आवश्यकता है
संबंधित मुद्दे