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