中用是什么

中元节是什么节2022-07-11  7

我很高兴回答你的问题:

由于Spark是由Scala开发的,所以大多数人在开发Spark应用时都会选择Scala语言,不过Spark官方网站也给出了用java实现的例子。

1.构建系统的选择,sbt更适合构建Scala项目,maven更适合构建Java项目。

2.对于spark中的API,Java和Scala是有区别的,但区别不是很大。

3.如果使用Scala开发spark原型程序,可以使用spark-shell“打草稿”或者直接使用spark-shell进行交互式实时查询。

4.使用Scala的代码量甚至会减少一个数量级,但是使用Scala的门槛更高。

5.Scala开发效率更高,代码更精简。

6.火花使用过程中出现异常情况。如果在故障排除时熟悉Spark源代码,可以事半功倍。

7.此外,Spark基本采用函数式编程。如果使用Java,可能需要写很多匿名类,而Scala只需要一个lambda表达式。

8.Java不支持自动类型派生。RDD类基本都是泛型,声明时需要写一串类类型,而Scala基本可以省略变量类型。

总而言之:

就个人体验而言,Scala相对于Java的优势是巨大的。熟悉Scala后再看看Java代码,感觉像在读汇编...

另外,如果你愿意,可以把Java和Scala混合使用,因为两者最后都编译成类文件,使用Scala可以随意调用Java实现的类和方法。

从表面上看,无论使用哪种语言,都可以完成同样的功能,只是代码量有多有少。开发者可以根据自己的情况选择使用Java或者Scala。

据说最新的Java 8已经支持函数接口,Java 9也会引入Java Shell函数,会逐渐变得像Scala一样简洁。

转载请注明原文地址:https://juke.outofmemory.cn/read/686392.html

最新回复(0)