2017-05-10 9 views
6

मैं अपना पहला स्पार्क एप्लिकेशन बना रहा हूं।स्कैला/स्पार्क संस्करण संगतता

http://spark.apache.org/downloads.html मुझे बताता है कि स्पार्क 2.x स्कैला 2.11 के खिलाफ बनाया गया है।

स्काला साइट https://www.scala-lang.org/download/all.html मैं 2.11.0 से संस्करणों देख रहा हूँ पर - 2.11.11

तो यहाँ मेरी सवाल यह है: वास्तव में क्या करता है स्पार्क साइट पर 2.11 मतलब है। क्या यह 2.11.0 - 2.11.11 रेंज में कोई स्कैला संस्करण है?

एक और सवाल: क्या मैं नवीनतम स्कैला 2.12.2 का उपयोग करके अपने स्पार्क ऐप्स का निर्माण कर सकता हूं? मुझे लगता है कि स्कैला पिछड़ा संगत है, इसलिए स्कैला के साथ निर्मित स्पार्क लाइब्रेरी का कहना है कि 2.11.x का उपयोग स्केल 2.12.1 अनुप्रयोगों में किया जा सकता है। क्या मैं सही हूँ?

उत्तर

14

स्कैला पिछला संगत नहीं है, जैसा कि आप मानते हैं। जब तक आप स्कैला 2.12 के तहत स्पार्क का पुनर्निर्माण नहीं करते हैं, तब तक स्पार्क के साथ स्कैला 2.11 का उपयोग करना चाहिए (यदि आप नवीनतम स्कैला संस्करण का उपयोग करना चाहते हैं तो एक विकल्प है, लेकिन सबकुछ काम करने के लिए और अधिक काम की आवश्यकता है)।

संगतता पर विचार करते समय, आपको स्रोत संगतता और बाइनरी संगतता दोनों पर विचार करने की आवश्यकता है। स्कैला स्रोत को पीछे की ओर संगत करता है, इसलिए आप अपने जार को एक नए संस्करण के तहत पुनर्निर्माण कर सकते हैं, लेकिन यह द्विआधारी पिछड़ा संगत नहीं है, इसलिए आप किसी पुराने संस्करण के साथ पुराने संस्करण के साथ बनाए गए जार का उपयोग नहीं कर सकते हैं।

यह केवल प्रमुख संस्करण है, इसलिए स्कैला 2.10, 2.11, 2.12 इत्यादि सभी प्रमुख संस्करण हैं और बाइनरी संगत नहीं हैं (भले ही वे स्रोत संगत हों)। (यह भी संगत हो जाएगा प्लस भविष्य के किसी भी 2.11 संशोधन)

यही कारण है कि आप देखेंगे के लिए है 2.11.11 - हालांकि संगतता बनाए रखा है एक प्रमुख संस्करण के भीतर, तो स्काला 2.11 सभी संस्करणों 2.11.0 के साथ संगत है अधिकांश स्कैला पुस्तकालयों में प्रत्येक प्रमुख स्कैला संस्करण के लिए अलग-अलग रिलीज होते हैं। आपको यह सुनिश्चित करना होगा कि आपके द्वारा उपयोग की जाने वाली किसी भी लाइब्रेरी का उपयोग आपके द्वारा उपयोग किए जा रहे संस्करण के लिए एक जार प्रदान करता है, और आप उस जार का उपयोग करते हैं और एक अलग संस्करण के लिए नहीं। यदि आप एसबीटी %% का उपयोग करते हैं तो आपके लिए सही संस्करण चुनने में मदद मिलेगी लेकिन मैवेन के साथ आपको सही आर्टिफैक्ट नाम का उपयोग करना सुनिश्चित करना होगा। संस्करणों को आम तौर पर _2.10, _2.11, और _2.12 के साथ तैयार किया जाता है जो जार के लिए बनाए गए स्कैला संस्करण का जिक्र करते हैं।

+0

मैं कम से कम स्पार्क 2.0 का उपयोग करना चाहता हूं, क्योंकि यह पहला संस्करण है जिसमें मॉडल की बचत और लोडिंग क्षमता की आवश्यकता है। तो मुझे स्कैला के किस संस्करण की आवश्यकता है और यह कहां देखा जा सकता है? –

+0

@PaulReiners नवीनतम संस्करण 2.1.1 स्कैला 2.11 के लिए वितरित किया गया है। यदि आप स्कैला 2.12 चाहते हैं तो आप उस स्कैला संस्करण के लिए स्रोत से स्पार्क बना सकते हैं। स्पार्क होमपेज कुछ स्थानों पर नवीनतम रिलीज के लिए स्काला संस्करण का उल्लेख करता है लेकिन मैंने कोई आधिकारिक संगतता तालिका नहीं देखी है। आप निश्चित रूप से पैकेज नामों को देख सकते हैं, हालांकि स्काला संस्करण को जोड़ने के मानक सम्मेलन का पालन करते हैं, जो वे आर्टिफैक्ट आईडी के अनुकूल हैं। – puhlen

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