about云spark开发基础之Scala快餐
spark是用Scala语言来写的,因此学习Scala成为spark的基础。当然如果使用其它语言也是可以的。从性能上来讲,及代码简洁等方面,Scala是比较好的一个选择。
当前我们的生活都是处于快节奏,各方面都讲究快,快--讲究的是效率,这里同样是想让大家快速入门Scala,如同吃快餐一样,因此命名为快餐Scala。文中如有不当之处,大家多批评指正。
Scala是函数式编程,继承了其它语言的很多特点,并且发展了自己特性。因此下面所涉及的内容,需要熟悉一门语言,特别是Java语言。如果没有语言基础,建议从下面资源推荐中,下载Scala编程(完整版) (密码uprb),如果想更多更系统的学习,也可以从推荐资源中选择适合自己的书籍或则资源。
既然我们学习Scala,那就需明白什么是函数式编程。
在Scala编程中认为:函数式编程有两种指导理念:
第一种理念:函数式头等值。也就是函数式有值的,并且其可以作为参数来传递。匿名函数,可以随意的插入代码中。这个与传统的语言中的函数是不同的,传统语言函数可以理解为一个操作,或则功能。作为参数传递,会让传统程序员难以理解。但是在Scala中是可以的。
第二种理念:
程序的操作应该把输入值映射为输出值而不是修改原先数据。比如我们操作一个字符串,当我们执行replace操作后,形成的是一个新的字符串。而不是在原先的字符串的基础上修改而成。这有点绕的。打个比方,你们家房子旧了,你想翻新。不是对旧房子改造,而是另外新盖一个房子。
第二种理念另外的解释:方法不应有任何副作用。方法与环境的唯一交流方式是获取参数和返回结果。同样也是以字符串为例,Java的String, replace操作后,会返回一个新的字符串,这就是返回的结果。这里面参数是字符串本身,以及替换和被替换的字符。