现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

为什么Spark要用Scala实现?

2020-03-08 08:16 工业·编程 ⁄ 共 913字 ⁄ 字号 暂无评论

下面只是说说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等框架。

作者:冰封

一点看法:

1、云计算平台最好还是要运行在虚拟机上,这样可以尽量避免环境不一致所造成麻烦。因此JVM是一个不错的选择。Hadoop是这么干的,spark也是。
2、JVM上面的语言中,scala确实有其独到之处,静态,编译,函数式,甚至是scala的那个interpreter。而且scala特别适合并发,这是又它函数式语言所决定的。其实我感觉spark就是受到scala语言风格启发才开发出来的。怎么说呢,平时你写scala的时候就是用map等方法处理数据的。如果你是scala用的熟练,spark一天就上手。

给我留言

留言无头像?