यदि आप अपने स्वयं के कस्टम आउटपुट प्रारूप का उपयोग करने के इच्छुक हैं, तो आप आरडीडी के साथ वांछित व्यवहार प्राप्त करने में सक्षम होंगे।
निम्नलिखित कक्षाओं पर एक नज़र डालें:
FileOutputFormat ,
FileOutputCommitter
फ़ाइल आउटपुट स्वरूप में आपके पास checkOutputSpecs नाम का एक तरीका है, जो यह जाँच रहा है कि आउटपुट निर्देशिका मौजूद है या नहीं। FileOutputCommitter में आपके पास कमिटमेंट है जो आमतौर पर अस्थायी निर्देशिका से डेटा को उसके अंतिम स्थान पर स्थानांतरित कर रहा है।
मैं अभी तक इसे सत्यापित नहीं कर पाया था (इसे करूंगा, जैसे ही मेरे पास कुछ मुफ्त मिनट होंगे) लेकिन सैद्धांतिक रूप से: यदि मैं FileOutputFormat का विस्तार करता हूं और checkOutputSpecs को एक विधि से ओवरराइड करता हूं, जो पहले से मौजूद निर्देशिका पर अपवाद नहीं फेंकता है, और समायोजित करें मेरे कस्टम आउटपुट की कमिटमेंट विधि, जो कभी भी मेरे द्वारा किए जाने वाले तर्क को निष्पादित करने के लिए कम करती है (जैसे कि कुछ फ़ाइलों को ओवरराइड करना, दूसरों को जोड़ना) की तुलना में मैं RDDs के साथ वांछित व्यवहार को प्राप्त करने में सक्षम हो सकता हूं।
आउटपुट स्वरूप को पास कर दिया गया है: saveAsNewAPIHadoopFile (जो विधि saveAsTextFile है जिसे वास्तव में फ़ाइलों को सहेजने के लिए कहा जाता है)। और आउटपुट कमिटर को एप्लिकेशन स्तर पर कॉन्फ़िगर किया गया है।