博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数据入门:Scala函数式编程
阅读量:4072 次
发布时间:2019-05-25

本文共 1245 字,大约阅读时间需要 4 分钟。

在大数据的学习当中,学到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函数式编程的学习与掌握。

转载地址:http://nhkni.baihongyu.com/

你可能感兴趣的文章
Android自定义apk名称、版本号自增
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
javascript传参字符串 与引号的嵌套调用
查看>>
swiper插件的的使用
查看>>
layui插件的使用
查看>>