जब एक coalesce
, जो क्योंकि यह एक फेरबदल का कारण नहीं है महान है और तुरंत काम करने के लिए लगता है का उपयोग कर सकते विभाजन की संख्या कम (एक अतिरिक्त काम चरण की आवश्यकता नहीं है)।स्पार्क: बिना किसी शफल के विभाजन की संख्या बढ़ाएं?
मैं कभी कभी विपरीत करना चाहते हैं, लेकिन repartition
एक फेरबदल प्रेरित करता है। मैं कुछ महीने पहले लगता है कि मैं वास्तव में CoalescedRDD
balanceSlack = 1.0
साथ का उपयोग करके यह काम कर रहे हो गया - तो क्या होगा यह एक विभाजन विभाजित होता है तो यह है कि जिसके परिणामस्वरूप विभाजन स्थान जहां एक ही नोड (इतना छोटा शुद्ध आईओ) पर सभी।
कार्यक्षमता इस तरह की Hadoop में स्वचालित है, एक बस विभाजन आकार बदलाव करता। यह स्पार्क में इस तरह से काम नहीं करता है जब तक कि कोई विभाजन की संख्या कम नहीं कर लेता है। मुझे लगता है कि समाधान कस्टम आरडीडी के साथ एक कस्टम विभाजनकर्ता लिखना हो सकता है जहां हम getPreferredLocations
परिभाषित करते हैं ... लेकिन मैंने सोचा कि यह इतना आसान और सामान्य बात है कि निश्चित रूप से ऐसा करने का एक सीधा आगे होना चाहिए?
बातें करने की कोशिश की: मेरे SparkConf
पर
.set("spark.default.parallelism", partitions)
, और पढ़ने छत के संदर्भ में मैं sqlContext.sql("set spark.sql.shuffle.partitions= ...
, जो 1.0.0 पर एक त्रुटि का कारण बनता है और वास्तव में, मैं चाहता हूँ चाहता हूँ मैं विभाजन चाहते हैं की कोशिश की है जब सभी प्रकार की नौकरी में बदलने की संख्या, सिर्फ शफल नहीं।
कोई भाग्य इसके लिए समाधान ढूंढ रहा है? – nbubis