为什么spark要用Scala实现?
1,构建系统的选择,***t更合适用来构建Scala工程,m***en更合适用来构建java工程2,对于Spark中的API来说,Java和Scala有差别,但差别并不大3,如果用Scala开发spark原型程序,可以用spark-shell逗打草稿地,或者直接使用spark-shell做交互式实时查询4,用Scala代码量将减少甚至一个数量级,不过Scala的使用门槛较高建议:使用Scala构建spark作业,因为spark本身为***t所构建,同时使用Scala开发spark作业将有助于理解spark的实现机制作者:egraldlo链接:
1、spark和scala真的是非常完美的配搭,RDD的很多思想与scala类似,如完全相同概念List的map、filter等高阶算子,很短的
代码就可以实现j***a很多行的功能;类似于fp中的不可变及惰性计算,使得分布式的内存对象rdd可以实现,同时可以实现pipeline;
2、scala善于借力,如设计初衷就包含对于jvm的支持,所以可以很完美的借j***a的生态力量;spark一样,很多东西不要自己写,直接使用、借鉴,如直接部署在yarn、mesos、ec2,使用hdfs、s3,借用hive中的sql解析部分;
3、还有akka方便开发高效的网络通讯。
大家都用什么scala开发工具?
现在的比较流行的scala开发工具都是以前的j***a IDE添加插件来实现的,比如IntelliJ IDEA或者eclipse或者NetBean, 我平时用的最多的还是Intellij的,感觉用起来比较舒服,Bug比较少一点,Eclipse的问题还是太多,很多时候会出现莫名其妙的编译错误,但是Eclipse好像是有个scala的官方团队在进行开发,毕竟之前做j***a开发还是用eclipse的时候多。
希望以后eclipse的插件能够更完善吧,2.8.0final之后scala的eclipse插件已经更新到最新版本了,但是Intellij的插件不用更新就能直接用2.8的scala,感觉还是很舒服的,specs和scalatest都能良好运行。
大数据中的Scala好掌握吗,自学可以吗?
不过在学习Scala之前,你最好先对J***a和任一函数式语言(Haskell,SML等)有一定程度理解以后,尤其是能够在编程范式之间随意切换以后,再去了解Scala。
Scala在大数据方向不是偏科研的,是非常多地方都会用的,比如说spark。
Scala的好处:
1, JVM base, 全面兼容J***a. 对于J***a基础扎实的同学, 学习Scala是很友好的;
2, 在常用工具中, Flume和Hadoop由j***a编写, Spark和Kafka由Scala编写。
所以对于想学大数据的同学而言, Scala确实是最推荐的。
Scala作为一门较新的语言,它的社区是比较混乱的。Scala社区里有很多不同的尝试,以J***a一支和Haskell一支为主,此外还有使actor和reactive programming一派的。你如果连一个已经成熟的编程范式都没有掌握,我觉得很大可能你会吃不消Scala。