2017-05-10 19 views
6

benim ilk kıvılcım uygulaması inşa ediyorum.Scala/Kıvılcım sürümü uyumluluk

http://spark.apache.org/downloads.html o Kıvılcım 2.x Scala 2.11 karşı inşa edilmiştir söylüyor. Ben 2.11.0 den sürümleri görüyorum https://www.scala-lang.org/download/all.html Scala sitesinde

- Yani burada 2.11.11

sorum şu: Tam olarak ne Kıvılcım sitesinde 2.11 ortalama. 2.11.0 - 2.11.11 aralığında herhangi bir Scala versiyonu var mı?

başka soru: Ben en son Scala 2.12.2 kullanarak Kıvılcım uygulamaları oluşturmak miyim? Scala'nın geriye dönük olarak uyumlu olduğunu, Scala ile oluşturulan Spark kütüphanelerinin Scala 2.12.1 uygulamalarında 2.11.x kullanılabileceğini/çağrıldığını söylüyorum. Doğrumuyum? Eğer farz olarak

cevap

14

Scala, geriye uyumlu değildir. Scala 2.12 (eğer en son Scala versiyonunu kullanmak istiyorsanız bir seçenek, ancak her şeyin işe yaraması için daha fazla çalışma gerektirir) kıvılcımını yeniden oluşturmadıkça scala 2.11'i kullanmalısınız. uyumluluğu göz önüne alındığında

, kaynak uyumluluğunu ve ikili uyumluluk hem dikkate almak gerekir. Scala, geriye doğru uyumlu bir kaynak olma eğilimindedir, böylece kavanozunuzu daha yeni bir sürüm altında yeniden oluşturabilirsiniz, ancak ikili geriye dönük olarak uyumlu değildir, bu yüzden eski bir sürümle oluşturulmuş bir jar'i yeni bir sürümden kodla kullanamazsınız.

Bu yalnızca büyük sürümler, yani 2.10, 2.11, 2.12 gibi ölçeklerin tümü büyük sürümlerdir ve ikili uyumlu değildir (kaynak uyumlu olsa bile).

O göreceksiniz bu nedenle içindir (aynı zamanda uyumlu olacak artı ileride 2.11 revizyonlar) 2.11.11 - uyumluluk korunur olsa önemli bir sürümü içinde, bu yüzden Scala 2.11 tüm sürümleri 2.11.0 ile uyumludur Çoğu Scala kütüphanesinin, her büyük Scala sürümü için ayrı sürümleri vardır. Kullandığınız tüm kitaplıkların, kullandığınız sürüm için bir jar sağladığından ve bu jar'i kullandığınızdan ve farklı bir sürüm için bir tane kullanmadığınızdan emin olmanız gerekir. SBT %% kullanıyorsanız, sizin için doğru sürümü seçmeyi başaracaktır ancak maven ile doğru yapaylık adını kullandığınızdan emin olmalısınız. Sürümler genellikle, _2.10, _2.11 ve _2.12 ile, jar'ın oluşturulduğu scala sürümüne bakarak hazırlanır. benim ihtiyacım modeli tasarrufu ve yükleme kapasitesine sahip ilk sürümü beri

+0

Ben en azından Spark 2.0 kullanmak istiyorum. Peki Scala'nın hangi sürümüne ihtiyacım var ve bu nereye bakılabiliyor? –

+0

@PaulReiners En son sürüm 2.1.1 Scala 2.11 için dağıtılmıştır. Scala 2.12'yi isterseniz, bu Scala sürümü için kaynaktan kıvılcım oluşturabilirsin. Kıvılcım ana sayfası, birkaç yerde en son sürüm için Scala versiyonundan bahseder, ancak herhangi bir resmi uyumluluk tablosu görmedim. Tabi ki, paket isimlerine bakabilirsiniz, ancak bunlar, ikincil dosya kimliğiyle uyumlu oldukları Scala versiyonunun eklenmesiyle ilgili standart sözleşmeyi takip edebilirler. – puhlen