在大数据的学习当中,学到Spark部分,就免不了需要Scala这门语言了,Scala是Spark框架的原生编程语言,想要真正把Spark搞懂,那么对Scala自然也需要相应程度的掌握。今天的大数据入门分享,我们就来讲讲Scala函数式编程。
提到Scala,首先会提到的一个概念,就是函数式编程,这也是Scala语言区别与其他编程语言的典型特征。Scala是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。
在大数据处理场景下,Scala语言有着相当的优势——
在实际运行中,Scala源代码被编译为Java字节码,所以可以运行在JVM上,可以调用现有的Java类库,并兼容现有的Java程序。
命令式编程VS函数式编程
命令式编程,程序逻辑的基本元素是:变量+操作符+控制结构,这些元素构成一条条的代码指令,因此,称之为命令式编程。
函数式编程,程序逻辑由:map+匿名函数组成。整个代码中,看不到变量、控制结构、操作符等元素,看到的只有函数,因此,函数式编程的本质就是:程序逻辑的基本元素是函数。
理解函数式编程
命令式编程中,程序逻辑的基本元素是:变量+操作符+控制结构;
函数式编程中,程序逻辑的基本元素是:函数;
面向对象编程中,程序逻辑的基本元素是:对象+操作符+控制结构;
大部分的程序逻辑,命令式编程和函数式编程都可以实现;
命令式编程的思路更加偏向于计算机本身,而函数式编程的思路更偏向于人的思维;
Scala提供了大量的特性,例如:val常量,匿名函数、高阶函数、闭包、柯里化等,来支持函数编程;
函数式编程有利于程序自动并行化,只需对numList做一个简单的数据划分,将numList划分成n个部分,每个部分都执行map()操作,最后汇总结果即可,这个工作是一个固定的模式,可以由机器来完成;
编程时,要注意培养自己使用函数式编程的习惯,尝试将逻辑抽象成函数,将函数作为程序逻辑的组成元素,同时,还可以多阅读别人的代码,如Spark的实现,吸取其中有益的经验,久而久之,就可以写出很专业的的函数式编程代码。
编程方式的选择
Scala支持命令式编程、函数式编程、面向对象编程。
那么在实际编程中该如何选择呢?
在实践中,编程方式的选择,要以功能实现为第一要义。
例如,面向对象支持多态、继承,这些特性对于代码复用、简化逻辑有很大帮助,因此,有类似需求的时候,可以考虑面向对象编程;又比如,函数式编程对程序并行化非常友好,因此,有类似需求的时候,可以考虑函数式编程等等,此外,如类似数学推理的需求,用函数式编程也是比较合适的。
切记:不可因为偏爱某种编程方式,而生搬硬套,为了编程而编程,忘记出发点,是不可取的。
关于大数据入门,Scala函数式编程,以上就为大家做了简单的介绍了。Spark框架在大数据技术生态当中,占据着相当重要的地位,而涉及到Spark学习,也必然离不开Scala函数式编程的学习与掌握。
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rgzn-zryycl/1816.html