下面只是说说spark研发团队为什么选择scala,不是对比语言好坏。
第一:java与scala
1、当涉及到大数据Spark项目场景时,Java就不太适合,与Python和Scala相比,Java太冗长了,一行scala可能需要10行java代码。
2、当大数据项目,Scala支持Scala-shell,这样可以更容易地进行原型设计,并帮助初学者轻松学习Spark,而无需全面的开发周期。但是Java不支持交互式的shell功能。
第二:Python与Scala
虽然两者都具有简洁的语法,两者都是面向对象加功能,两者都有活跃的社区。
1、Python通常比Scala慢,Scala会提供更好的性能。
2、Scala是static typed. 错误在编译阶段就抛出,它使在大型项目中开发过程更容易。
3、Scala基于JVM,因为Spark是基于Hadoop的文件系统HDFS的。 Python与Hadoop服务交互非常糟糕,因此开发人员必须使用第三方库(如hadoopy)。 Scala通过Java中的Hadoop API来与Hadoop进行交互。 这就是为什么在Scala中编写本机Hadoop应用程序非常简单。
总之:
选择哪种语言,要看作者的个人想法着重点,当然想“玩”spark,python也是非常好的。
Spark专注于数据的"transformation"和"mapping"的概念,这非常适合于完美支持像scala这样的概念的功能编程语言。
另外scala在JVM上运行,这使得更容易集成hadoop、YARN等框架。