2016-11-02 10 views
7

मैं sc.getconf.set("spark.local.dir","/temp/spark") का उपयोग कर स्पार्क-खोल से spark.local.dir सेट करने का प्रयास कर रहा हूं, लेकिन यह काम नहीं कर रहा है। क्या इस संपत्ति को स्पार्कशेल से सेट करने का कोई और तरीका है।स्पार्क खोल से spark.local.dir संपत्ति कैसे सेट करें?

उत्तर

7

आप इसे से खोल में नहीं कर सकते - क्योंकि स्पार्क संदर्भ पहले से ही बनाया गया था, इसलिए स्थानीय डीआईआर पहले ही सेट (और उपयोग किया गया था)। आप इसे पैरामीटर के रूप में पास करना चाहिए जब खोल शुरू करने:

./spark-shell --conf spark.local.dir=/temp/spark 
+0

आपके समाधान के अतिरिक्त, क्या वह वर्तमान स्पार्क संदर्भ (sc.stop() का उपयोग करके बंद नहीं कर सकता), और फिर spark.local.dir मान सेट करें, और sc.getOrCreate() यह? – Yaron

+0

आप सही हैं - यह होगा (थोड़ा लंबा संस्करण की आवश्यकता हो सकती है: 'स्पार्कसेशन.बिल्ड r.config (sc.getConf) .config ("spark.local.dir", "/ temp/spark")। getOrCreate() '), लेकिन आपको 'वॉर्न स्पार्क कॉन्टेक्स्ट' मिलता है: मौजूदा स्पार्ककॉन्टेक्स्ट का उपयोग करें, कुछ कॉन्फ़िगरेशन नहीं हो सकता है प्रभाव डालें ', जो बताता है कि यह लेने का अनुशंसित मार्ग नहीं है। लेकिन - हाँ, आप सही हैं, एक और जवाब के रूप में जोड़ने के लिए स्वतंत्र महसूस करें। –

3

@Tzach ज़ोहर समाधान सही जवाब हो रहा है।

हालांकि, अगर आप से spark.local.dir स्थापित करने के लिए जोर देते हैं चिंगारी शैल आप यह कर सकते हैं:

1) वर्तमान चिंगारी संदर्भ

sc.stop() 

2) अनुसूचित जाति विन्यास अद्यतन बंद करते हैं, और इसे पुनरारंभ करें।

अद्यतन कोड कृपया @ Tzach-ज़ोहर द्वारा प्रदान किया गया:

SparkSession.builder.config(sc.getConf).config("spark.local.‌​dir","/temp/spark").‌​getOrCreate()) 

@Tzach ज़ोहर नोट: "लेकिन आप एक चेतावनी SparkContext मिलता है: एक मौजूदा SparkContext का प्रयोग करें, कुछ विन्यास प्रभाव नहीं लग सकता है, जो सुझाव देता है कि यह लेने के लिए अनुशंसित पथ नहीं है।

+0

'स्पार्क्स' दस्तावेज से] (https://spark.apache.org/docs/2.1.0/configuration.html) अनुभाग 'spark.local.dir' पर: "नोट: स्पार्क 1.0 में और बाद में यह ओवरराइड हो जाएगा क्लस्टर प्रबंधक द्वारा निर्धारित SPARK_LOCAL_DIRS (स्टैंडअलोन, मेसोस) या LOCAL_DIRS (YARN) पर्यावरण चर द्वारा। " – Wesam

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