【Spark编程基础(2.4)】Scala语言基础—函数式编程基础

4 函数式编程基础

函数的定义与使用
定义函数最通用的方法是作为某个类或单例对象的成员,这种函数被称为方法。
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第1张图片
函数类型和函数值
字面量
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第2张图片
函数字面量
整型可以把具体值在方法调用中传来传去->函数可以想整型值一样在不同的方法调用中操作 传递
在这里插入图片描述
函数的输入参数类型和返回值类型一起构成函数的类型。
在这里插入图片描述

  • 当参数只有一个时,圆括号可以省略
  • 只有存在多个参数时,圆括号才是必须的

在这里插入图片描述
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第3张图片
匿名函数(Lambda表达式)
在这里插入图片描述
格式:
在这里插入图片描述
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第4张图片
自动推断类型,不用声明:

【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第5张图片
省略num类型声明不可
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第6张图片
若给出类型说明,不用专门类型声明
在这里插入图片描述
_的作用,函数字面量仅出现一次
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第7张图片
高阶函数,函数的参数仍然是函数
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第8张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第9张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第10张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第11张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第12张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第13张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第14张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第15张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第16张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第17张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第18张图片

针对容器的操作

Scala容器的标准遍历方法
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第19张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第20张图片
注:元组对象不需要加类名。

映射操作-map方法和flatMap方法
map:一对一映射
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第21张图片
flatMap:一对多映射
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第22张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第23张图片
过滤操作
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第24张图片
规约
reduce(f)
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第25张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第26张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第27张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第28张图片
fold方法:带初始值
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第29张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第30张图片

函数式编程实例WordCount

【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第31张图片
【Spark编程基础(2.4)】Scala语言基础—函数式编程基础_第32张图片

你可能感兴趣的:(推荐系统实践)