मान लीजिए मैं बनाने के इस तरह के एक RDD (मैं Pyspark उपयोग कर रहा हूँ):स्पार्क कैसे तय करता है कि आरडीडी को कैसे विभाजित किया जाए?
list_rdd = sc.parallelize(xrange(0, 20, 2), 6)
तो मैं glom()
विधि के साथ विभाजित तत्वों प्रिंट और प्राप्त
[[0], [2, 4], [6, 8], [10], [12, 14], [16, 18]]
कैसे स्पार्क का फैसला किया है कैसे विभाजन मेरी सूची? तत्वों की उस विशिष्ट पसंद कहां से आती है? 6 अनुरोधित विभाजन बनाने के लिए, यह कुछ अलग-अलग तत्वों को 0 और 10 से अलग छोड़कर अलग-अलग जोड़ सकता था। दूसरे भाग में, विभाजन समान हैं। मैं
list_rdd = sc.parallelize(xrange(0, 10, 2), 6)
[[], [0], [2], [4], [6], [8]]
मिल
list_rdd = sc.parallelize(xrange(0, 30, 2), 6)
[[0, 2], [4, 6, 8], [10, 12], [14, 16, 18], [20, 22], [24, 26, 28]]
9 तत्वों की एक छोटी श्रेणी का उपयोग करना:
एक बड़ी रेंज का उपयोग करना, 29 के साथ तत्वों, मैं तीन तत्वों द्वारा पीछा 2 तत्वों के पैटर्न में विभाजन मिल तो क्या मैं यह अनुमान लगा कि स्पार्क एक विन्यास जहां छोटी संभव बड़ा संग्रह द्वारा पीछा किया जाता है, और बार-बार में सूची विभाजित करके विभाजन पैदा कर रहा है है।
सवाल यह है कि अगर इस विकल्प के पीछे कोई कारण है, जो बहुत ही सुरुचिपूर्ण है, लेकिन क्या यह प्रदर्शन लाभ भी प्रदान करता है?