惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
月光博客
月光博客
人人都是产品经理
人人都是产品经理
宝玉的分享
宝玉的分享
博客园 - 司徒正美
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
Vercel News
Vercel News
T
The Blog of Author Tim Ferriss
T
Tailwind CSS Blog
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
L
LangChain Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
Visual Studio Blog
S
SegmentFault 最新的问题
Google DeepMind News
Google DeepMind News
博客园 - 聂微东

博客园 - 王晓成

Spark RDD 操作 (转)Mysql哪些字段适合建立索引 Specified key was too long; max key length is 767 bytes解决方案 (转)并发编程 – Concurrent 用户指南 协同过滤 (转)K-近邻算法(KNN) 贝叶斯、朴素贝叶斯及调用spark官网 mllib NavieBayes示例 决策树之ID3,C4.5及CART kmeans Spark下的FP-Growth和Apriori scala spark-streaming整合kafka (spark 2.3 kafka 0.10) (转)Java 详解 JVM 工作原理和流程 php 正则表达式 (转发)storm 入门原理介绍 shell :将标准输出及标准错误输出写到指定文件 shell循环(两个日期比较,改变某个特定日期来改变当前比较值) MongoDB基本操作 (转)cenntos 安装mongodb 通过spark sql 将 hdfs上文件导入到mongodb
Scala map与flatMap
王晓成 · 2018-08-08 · via 博客园 - 王晓成

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)