有人可以帮助我理解为什么人们使用Scala而不是Java来获取火花吗?我一直在研究,但未能找到一个可靠的答案,我知道两者都可以正常工作,因为它们都运行在JVM上,我知道scala是我们的功能和OOP语言.
谢谢
Spark是用Scala编写的.Spark也出现在Java 8可用之前,这使得函数式编程变得更加繁琐.此外,Scala在仍然在JVM中运行时更接近Python.数据科学家是Spark的原始目标用户.传统上,数据科学家在Python中有更多的背景知识,因此Scala使用它们更有意义,然后直接使用Java
以下是其中一位最初写过他们所做的reddit AMA写的火花的人的直接引用.问题是:
问:
在Scala中创建Spark有多重要?用Java编写它或者Scala是Spark的基础是可行/现实吗?
来自Matei Zahara的A:
在我们开始的时候,我真的想要一个支持语言集成界面的PL(人们在线编写函数等),因为我认为这是人们在看到有这些应用程序的研究系统之后想要对这些应用程序进行编程的方式(特别是微软的DryadLINQ).但是,我也希望加入JVM,以便轻松地与Hadoop文件系统和数据格式进行交互.Scala是唯一有点流行的JVM语言,它提供了这种功能语法,并且也是静态类型的(让我们对性能有一些控制),所以我们选择了它.今天可能有一个争论是使用Java 8在Java中创建API的第一个版本,但我们也从Spark中的Scala的其他方面受益,如类型推断,模式匹配,actor库等.
编辑
继承人柜面乡亲的联系有兴趣更多的是什么马太说的话: https://www.reddit.com/r/IAmA/comments/31bkue/im_matei_zaharia_creator_of_spark_and_cto_at/