spark学习-16-Spark的Map()和FlatMap()函数使用
2017-08-22 11:12
1026 查看
1。先看图
解释:map函数和faltMap()函数都会像是工厂一样,对你每个元素都做处理
map会将每一条输入映射为一个新对象。{苹果,梨子}.map(去皮) = {去皮苹果,去皮梨子} 其中: “去皮”函数的类型为:A => B 2.flatMap包含两个操作:会将每一个输入对象输入映射为一个新集合,然后把这些新集合连成一个大集合。 {苹果,梨子}.flatMap(切碎) = {苹果碎片1,苹果碎片2,梨子碎片1,梨子碎片2} 其中: “切碎”函数的类型为: A => List
“flatMap “函数的一半功能和map函数一样,不过有个要求,传入的函数在处理完后返回值必须是List(应该是Seq),如果结果不是List(Seq),那么将出错。也就是说,传入的函数是有要求的——返回值是Seq才行。这样,每个元素处理后返回一个List,我们得到一个包含List元素的List,flatMap自动将所有的内部list的元素取出来构成一个List返回。 sample:
传入flatMpa的函数返回值必须是List,将x*2改成List(x*2),并且和map函数对比一下,看结果:
map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;
flatMap函数则是两个操作的集合——正是“先映射后扁平化”:
1:同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象
2:最后将所有对象合并为一个对象
e426
解释:map函数和faltMap()函数都会像是工厂一样,对你每个元素都做处理
map会将每一条输入映射为一个新对象。{苹果,梨子}.map(去皮) = {去皮苹果,去皮梨子} 其中: “去皮”函数的类型为:A => B 2.flatMap包含两个操作:会将每一个输入对象输入映射为一个新集合,然后把这些新集合连成一个大集合。 {苹果,梨子}.flatMap(切碎) = {苹果碎片1,苹果碎片2,梨子碎片1,梨子碎片2} 其中: “切碎”函数的类型为: A => List
“flatMap “函数的一半功能和map函数一样,不过有个要求,传入的函数在处理完后返回值必须是List(应该是Seq),如果结果不是List(Seq),那么将出错。也就是说,传入的函数是有要求的——返回值是Seq才行。这样,每个元素处理后返回一个List,我们得到一个包含List元素的List,flatMap自动将所有的内部list的元素取出来构成一个List返回。 sample:
var li= List(1,2,3,4) li.flatMap(x => x match { case 3 => List(3.1,3.2) case _ => x*2 }) //结果=> main.scala:4: error: type mismatch; found : Int required: scala.collection.GenTraversableOnce[?] case _ => x*2
传入flatMpa的函数返回值必须是List,将x*2改成List(x*2),并且和map函数对比一下,看结果:
var li= List(1,2,3,4) var res = li.flatMap(x => x match { case 3 => List(3.1,3.2) case _ => List(x*2) }) println(res) li= List(1,2,3,4) var res2 = li.map(x => x match { case 3 => List(3.1,3.2) case _ => x*2 }) println(res2) //output=> List(2, 4, 3.1, 3.2, 8) List(2, 4, List(3.1, 3.2), 8) Program exited.
map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;
flatMap函数则是两个操作的集合——正是“先映射后扁平化”:
1:同map函数一样:对每一条输入进行指定的操作,然后为每一条输入返回一个对象
2:最后将所有对象合并为一个对象
e426
相关文章推荐
- spark中flatMap函数用法--spark学习(基础)
- Android打造自己的网络框架----RxJava的基础学习使用2(map、flatMap)
- map函数的学习和使用
- JS学习笔记1——不要使用JavaScript内置的parseInt()和Number()函数,利用map和reduce操作实现一个string2int()函数
- spark学习-SparkSQL--09-一些函数的使用
- Swift学习之map、flatMap、filter、reduce的使用
- SPark算子学习之FlatMap和Glom和randomSplit
- spark学习笔记:flatMap()(API操作报错)
- 第88讲:Scala中使用For表达式实现map、flatMap、filter学习笔记
- Spark组件之GraphX学习9--使用pregel函数求单源最短路径
- spark 的一些常用函数 filter,map,flatMap,lookup ,reduce,groupByKey
- Spark学习笔记 --- Spark中Map和FlatMap转换的区别
- Spark组件之GraphX学习9--使用pregel函数求单源最短路径
- PHP学习笔记——使用回调函数处理数组函数array_map()
- 学习51笔记与一份从网上找的资料:单片机C语言中_nop_函数的使用及C语言的延时计算2010-
- [转]Ultra Fractal教程系列16——学习基础技巧08——使用渐变
- python学习--函数使用
- 6.4.1 使用 map 函数
- perl map函数学习
- Linux内核的ioctl函数学习2 - linux系统ioctl使用示例