scala map和flatMap

map和flatMap

scala> val a  = Seq(1,2,3,6,4)
a: Seq[Int] = List(1, 2, 3, 6, 4)

scala>     val b = a.flatMap(f=>{
     |       try{
     |         Some(f/(f-1))
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
b: Seq[Int] = List(2, 1, 1, 1)

scala>     val b = a.map(f=>{
     |       try{
     |         Some(f/(f-1))
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
b: Seq[Option[Int]] = List(None, Some(2), Some(1), Some(1), Some(1))

flatMap类型需要一致

scala>     val d = a.flatMap(f=>{
     |       try{
     |         f/(f-1)
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
<console>:33: error: type mismatch;
 found   : Int
 required: scala.collection.GenTraversableOnce[?]
               f/(f-1)
                ^

scala>     val d = a.map(f=>{
     |       try{
     |         f/(f-1)
     |       }catch{
     |         case e:Exception=>None
     |       }
     |     })
d: Seq[Any] = List(None, 2, 1, 1, 1)
时间: 2024-10-06 13:17:05

scala map和flatMap的相关文章

scala 88 for替换map,flatmap,filtermap,for,scala,flatmap

王家林亲授<DT大数据梦工厂>大数据实战视频“Scala深入浅出实战经典”视频.音频和PPT下载!第88讲:Scala中使用For表达式实现map.flatMap.filter百度云盘:http://pan.baidu.com/s/1mgtgcIG360云盘:http://yunpan.cn/cdXsbctXfDNyC 访问密码 4e30腾讯微云:http://url.cn/VjOGea本节王老师讲了for可以替换map,flatmap,和filter.def map[A,B](list:Li

第88讲:Scala中使用For表达式实现map、flatMap、filter

今天我们来学习一下如何使用for表达式实现map.flatMap以及filter 首先,我们来看下map.map的功能是,传入一个list,通过一个函数f,将list中的元素A变成元素B的过程.最后得到由B形成的列表.这个过程如果由for循环实现的话,如下操作: for(element <- list) yield f(element) 接下来我们看下flatMap.flatMap的功能是,传入一个list,通过一个函数f,将list中的每个元素转换成一个列表,最后返回由这些列表中的所有元素构成

Scala深入浅出实战经典《第88讲:Scala中使用For表达式实现map、flatMap、filter》笔记

简直了....晚上回来突然看到了进巨的原稿,忍不住撸了幅三爷,然后什么都没做就23点了... 第88讲:Scala中使用For表达式实现map.flatMap.filter Goal: For表达式实现map/flatMap/filter Gains: map/flatMap/filter是泛型 More: ...... ------------------------------------------------------------------------------------ 信息来

Scala中使用For表达式实现map、flatMap、filter

学习了Scala中使用For表达式实现map.flatMap.filter,可以实现广泛的应用 例子如下: Object For_Advancde { Def main(args: Array[String]) {} Def map[A,B](List: List[A], f:A=>B):List[B]= For (element <-list) yield f(element) Def flatmap[A,B](List: List[A], f:A=>B):List[B]= For (

(转)scala学习笔记(8): 列表的map,flatMap,zip和reduce

http://www.ituring.com.cn/article/131442 https://twitter.github.io/scala_school/zh_cn/collections.html#flatten 如果不了解map,flatMap,zip和reduce函数,你就不能真正地谈论scala.通过这些函数,我们可以非常容易地处理列表的内容并结合Option对象工作.你可以在这个站点找到更多的片段:Scala片段 1:FoldingScala 片段2:List的操作符魔法 让我们

【转】Scala 片段3:列表的map,flatMap,zip和reduce

原文链接 http://www.ituring.com.cn/article/131442 本文翻译自:Scala snippets 3: Lists together with Map, flatmap, zip and reduce [email protected] 如果不了解map,flatMap,zip和reduce函数,你就不能真正地谈论scala. 通过这些函数,我们可以非常容易地处理列表的内容并结合Option对象工作. 你可以在这个站点找到更多的片段: Scala片段 1:Fo

spark 的一些常用函数 filter,map,flatMap,lookup ,reduce,groupByKey

定义不带参数也不带返回值的函数(def :定义函数的关键字  printz:方法名称) scala> def printz = print("scala hello") 定义带参数也带返回值的函数(这种函数在定义时也可以不带返回值的类型,scala会自动推算出.建议还是带上) scala> def minNum(x:Int,y:Int):Int = if(x>y) x else y //:Int 是该函数的返回值类型 minNum: (x: Int, y: Int)I

Spark算子:RDD基本转换操作(1)–map、flatMap、distinct

Spark算子:RDD基本转换操作(1)–map.flatMap.distinct 关键字:Spark算子.Spark RDD基本转换.map.flatMap.distinct map 将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素. 输入分区与输出分区一对一,即:有多少个输入分区,就有多少个输出分区. hadoop fs -cat /tmp/lxw1234/1.txt hello world hello spark hello hive //读取HDFS文件到RDD sca

Spark入门(四)--Spark的map、flatMap、mapToPair

spark的RDD操作 在上一节Spark经典的单词统计中,了解了几个RDD操作,包括flatMap,map,reduceByKey,以及后面简化的方案,countByValue.那么这一节将介绍更多常用的RDD操作,并且为每一种RDD我们分解来看其运作的情况. spark的flatMap flatMap,有着一对多的表现,输入一输出多.并且会将每一个输入对应的多个输出整合成一个大的集合,当然不用担心这个集合会超出内存的范围,因为spark会自觉地将过多的内容溢写到磁盘.当然如果对运行的机器的内