1. map函数
  对集合的每一个元素运用某个函数操作,然后将结果作为一个新的列表返回。

实例1:将列表中每个元素值乘以2

scala> val list1=List(1,2,3,4)
list1: List[Int] = List(1, 2, 3, 4)
scala> list1.map(_*2)
res54: List[Int] = List(2, 4, 6, 8)
另一种写法:
scala> list1.map(x=>x*2)
res55: List[Int] = List(2, 4, 6, 8)

实例2:分隔字符

scala> val l=List("jack","joe","terry","jerry")
l: List[String] = List(jack, joe, terry, jerry) 
scala> l.map(_.split(" "))
res20: List[Array[String]] = List(Array(jack), Array(joe), Array(terry), Array(jerry)) 

2.flatMap 函数

对集合中每个元素运用某个函数操作(每个元素会被映射为0到多个输出元素)后,将结果扁平化组成一个新的集合。

实例1:分隔字符

scala> val l=List("jack","joe","terry","jerry") 

l: List[String] = List(jack, joe, terry, jerry)

scala> l.flatMap(_.split(" ")) 

res21: List[String] = List(jack, joe, terry, jerry) 

注意:map分隔符操作返回的类型为 List[Array[String]],而flatMap分隔操作返回的类型为 List[String]

实例2:每个元素映射为多个元素

scala> val rdd=Array(1,2,3)
rdd: Array[Int] = Array(1, 2, 3)
scala> val rdd2=rdd.flatMap(x=>x to 5)
rdd2: Array[Int] = Array(1, 2, 3, 4, 5, 2, 3, 4, 5, 3, 4, 5)

Scala map与flatMap的更多相关文章

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

    map,flatMap,zip和reduce函数可以让我们更容易处理列表函数. 1 map函数map将一个函数应用于列表的每一个元素并且将其作为一个新的列表返回.我们可以这样对列表的元素进行平方: s ...

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

    今天我们来学习一下如何使用for表达式实现map.flatMap以及filter 首先,我们来看下map.map的功能是,传入一个list,通过一个函数f,将list中的元素A变成元素B的过程.最后得 ...

  3. (转)scala中map与flatMap浅析

    在函数式语言中,函数作为一等公民,可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值,可以对函数进行组合.由于命令式编程语言也可以通过类似函数指针的方式来实现高阶函数,函数式的最主要的好 ...

  4. 第35讲:List的map、flatMap、foreach、filter操作代码实战

    List类的高阶方法          val fmap = List( 1,2 ,3). map { _ + 1 } //List(2, 3, 4)    val fruit_rev2 = frui ...

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

    定义不带参数也不带返回值的函数(def :定义函数的关键字  printz:方法名称) scala> def printz = print("scala hello")   ...

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

    spark的RDD操作 在上一节Spark经典的单词统计中,了解了几个RDD操作,包括flatMap,map,reduceByKey,以及后面简化的方案,countByValue.那么这一节将介绍更多 ...

  7. scala - Map基础

    Map 构造Map 不可变: val map = Map("sa" -> 1, "s" -> 2)map("sa") = 3 / ...

  8. [RxJS] map vs flatMap

    What's the difference between map and flatmap? First, let's show what map is. To show that, I need a ...

  9. java8中stream的map和flatmap的理解

    转自https://blog.csdn.net/wynjauu/article/details/78741093 假如我们有这样一个需求给定单词列表["Hello","W ...

随机推荐

  1. 【golang】kafka

    这篇博客是用来记录用go安装及操作kafka库的时候踩到的坑~ 安装kafka库 首先我参考了博客:https://blog.csdn.net/tflasd1157/article/details/8 ...

  2. Spring搭建练习遇到的坑

    1.Error:(7, 23) java: cannot find symbolsymbol: class ProceedingJoinPointlocation: class com.how2jav ...

  3. vuex-getter

    store 的计算属性. getter 的返回值会根据它的依赖被缓存起来,且只有当它的依赖值发生了改变才会被重新计算 const store = new Vuex.Store({ state: { t ...

  4. 2.2使用urllib的简单传输

    使用urllib传输文件 from urllib.request import urlopen filename = 'new_1.py' password = 'password' #如果设置密码 ...

  5. 使用flask框架实现web页面与数据库数据互联+常见的几种状态码

    1.通过cygwin从pip install两个包:PyMySQL.SQLAlchemy: 2.在app.py中import我们要用到的库中的包:create_engine,text :from sq ...

  6. ssh+key

    一.ssh概述 在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输.确保了传递的数据安全. lrzsz安装包传输本地与Linux SSH客户端(ssh命令)还包含一 ...

  7. flask自定义转换器

    根据具体的需求,有些时候是需要用到正则来灵活匹配URL,但是Flask的路由匹配机制是不能直接在路由里直接写正则的,这时候就需要使用转换器! Flask的默认转换器: DEFAULT_CONVERTE ...

  8. Codeforces1062B. Math(合数分解)

    题目链接:传送门 题目: B. Math time limit per test second memory limit per test megabytes input standard input ...

  9. LeetCode - Fruit Into Baskets

    In a row of trees, the i-th tree produces fruit with type tree[i]. You start at any tree of your cho ...

  10. redis使用get key中文变成十六进制编码

    redis-cli 后面加上 --raw 解决中文显示问题 redis-cli -h 127.0.0.1 -p 端口 -a 密码  --raw 不带 --raw 参数: redis-cli -h &g ...