map()是将函数用于RDD中的每个元素,将返回值构成新的RDD。

flatmap()是将函数应用于RDD中的每个元素,将返回的迭代器的所有内容构成新的RDD,这样就得到了一个由各列表中的元素组成的RDD,而不是一个列表组成的RDD。

新建person.txt:

1 lisi 18
2 liwu 20
3 liyang 45
4 liming 30
5 lizhao 44

测试代码:

object Test extends App {
Logger.getLogger("org.apache.spark").setLevel(Level.OFF)
val sparkConf: SparkConf = new SparkConf().setAppName(this.getClass.getName).setMaster("local")
val sparkContext = new SparkContext(sparkConf)
val rdd: RDD[String] = sparkContext.textFile("C:\\Users\\dummy\\Desktop\\person.txt")
val flatMapRdd: RDD[String] = rdd.flatMap(_.split(" "))
val mapRdd: RDD[Array[String]] = rdd.map(_.split(" "))
flatMapRdd.foreach(x=>{
println(x.toString)
})
println("-------------")
mapRdd.foreach(x=>{
println(x(0),x(1),x(2))
})
}
rdd的元素是 1 lisi 18 的一整行数据,String类型,经过split切分,返回的RDD类型应为Array[String]类型
红色部分可以看出,flatMap返回的RDD的类型是 迭代器Array的元素的类型String,
而map返回的RDD类型是经过切分返回的RDD类型,即为Array[String]类型
返回结果截图:
												

最新文章

  1. AgileEAS.NET SOA 中间件Web运行容器管理功能已全部开源,欢迎大家下载、使用、反馈
  2. 关于nfs共享目录的使用技巧
  3. C#的linq在winform中简单应用
  4. jQuery Ready 与 Window onload 的区别(转)
  5. JSON详解(转)
  6. MySql不同版本安装
  7. 移动端Reactive Native轮播组件
  8. 自己写的Dapper通用数据访问层
  9. 你好,C++(10)这次的C++考试你过了没有?C++中表示逻辑判断的布尔数据类型
  10. Jmeter3.0新特性
  11. 对维数组排序 array_multisort()的应用
  12. 获取 Let's Encrypt 免费通配符证书实现Https
  13. [LeetCode] 17. 电话号码的字母组合
  14. DJango 前三天小结
  15. ubuntu 18.04//18.10&&windows 7/10双系统系统时间不一致
  16. 透彻理解Spring事务设计思想之手写实现
  17. jQuery页面加载初始化常用的三种方法
  18. JS 中 if / if...else...替换方式
  19. [机器学习&数据挖掘]机器学习实战决策树plotTree函数完全解析
  20. [转]好文章:Android的AlertDialog详解

热门文章

  1. 报错:Program "sh" not found in PATH
  2. 05、Win7上openSSH的安装与配置
  3. Visual Studio 2015简体中文版
  4. HDU1430 BFS + 打表 + 康托展开
  5. pycharm tab换为4个空格
  6. IOS 图形上下文栈
  7. 动态规划专题(五)——斜率优化DP
  8. 【洛谷2403】[SDOI2010] 所驼门王的宝藏(Tarjan+dfs遍历)
  9. 【ML】聊天机器人
  10. Java代码工具箱之控制台输出重定向_控制台输出到文件