Spark 中用 Scala 和 java 开发有什么区别

 我来答
东泽88887955
2017-08-17 · TA获得超过1.8万个赞
知道大有可为答主
回答量:2.1万
采纳率:54%
帮助的人:1593万
展开全部
1,构建系统的选择,sbt更合适用来构建Scala工程,maven更合适用来构建Java工程
2,对于spark中的API来说,Java和Scala有差别,但差别并不大
3,如果用Scala开发spark原型程序,可以用spark-shell“打草稿”,或者直接使用spark-shell做交互式实时查询
4,用Scala代码量将减少甚至一个数量级,不过Scala的使用门槛较高
建议:使用Scala构建spark作业,因为spark本身为sbt所构建,同时使用Scala开发spark作业将有助于理解spark的实现机制
Scala相对Java语法更丰富,更简洁,写起来更像脚本,能够提高开发效率。
使用Java的话代码会规范些,不过太臃肿,代码量更大。
另外Spark基本使用函数式编程,使用Java的话可能需要写一大堆匿名类,而Scala只需要一个lambda表达式。
Java不支持自动类型推导,RDD类基本都是范型,声明时需要写一串类类型,而Scala基本可以省略变量类型。
另外,如果喜欢,可以混合Java和Scala,因为二者最终都是编译成class文件,使用Scala能够随意调用Java实现的类和方法。
从表面上看,无论采用哪种语言,都能完成一样的功能,只是代码量有多有少,开发人员根据自己的情况选择使用Java还是Scala都可。
据说目前最新的Java 8已经支持函数式接口了,Java 9也将推出Java Shell功能,慢慢地会变得和Scala一样简洁
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式