Scala vs java for Spark?[已关闭]

2022-09-04 01:19:36

有人能帮助我理解为什么人们使用scala而不是Java来获取火花吗?我一直在研究,但一直无法找到一个可靠的答案,我知道两者都工作正常,因为它们都在JVM上运行,我知道scala us functional and OOP语言。

谢谢


答案 1

Spark是用Scala编写的。Spark也在Java 8问世之前问世,这使得函数式编程更加繁琐。此外,Scala更接近Python,同时仍然在JVM中运行。数据科学家是Spark的原始目标用户。传统上,数据科学家在Python方面有更多的背景,所以Scala对他们来说更有意义,然后直接进入Java。

这是直接引用其中一个人,他最初写了他们做的reddit AMA的火花。问题是:

Q:

在Scala中创建Spark有多重要?用Java编写它是可行/现实的,还是Scala是Spark的基础?

来自Matei Zahara的A:

在我们开始时,我真的想要一个支持语言集成界面的PL(人们在其中内联编写函数等),因为我认为这是人们在看到具有它的研究系统(特别是Microsoft的DryadLINQ)后想要对这些应用程序进行编程的方式。但是,我也想在JVM上,以便轻松地与Hadoop文件系统和数据格式进行交互。Scala是当时唯一一种提供这种函数式语法的流行JVM语言,也是静态类型的(让我们对性能有一定的控制),所以我们选择了它。今天,有人可能会争论用Java 8制作Java的第一个JAVA版本的API,但我们也受益于Spark中Scala的其他方面,如类型推断,模式匹配,actor库等。

编辑

如果人们对Matei所说的话感兴趣,请点击以下链接:https://www.reddit.com/r/IAmA/comments/31bkue/im_matei_zaharia_creator_of_spark_and_cto_at/


答案 2

推荐