Spark系列修炼---入门笔记9
来源:互联网 发布:云计算及其关键技术 编辑:程序博客网 时间:2024/05/16 18:20
核心内容:
1、Spark中map与flatMap的区别
2、Spark中RDD的核心概念
1、Spark中map与flatMap的区别
①map函数会对每一条输入进行指定的操作,然后为每一条输入返回一个对象;flatMap函数则是两个操作的集合,即先映射再扁平化:首先,同map函数一样,对每一条输入进行指定的操作,然后为每一条输入返回一个对象;然后将所有对象合并成一个对象.
②flatMap与map唯一不一样的地方就是传入的函数在处理完之后返回值必须是集合(List或者Array),其实这也不难理解,既然是flatMap,那除了map以外必然还有flat的操作,所以需要返回值是集合(List或者Array)才能执行flat这一步。
③Spark中flatMap和map的定义:
map()是将函数用于RDD中的每个元素,将返回值构成新的RDD;
flatMap()是将函数应用于RDD中的每个元素,将返回的迭代器的所有内容构成新的RDD .
④flatMap还可以去除掉空元素。
实例程序1:
运行结果:
List(20, 40, 60, 80)List(10, 20, 30, 40)
实例程序2:
运行结果:
List(List(2), List(4), List(Spark))List(2, 4, Spark)
2、Spark中RDD的核心概念①在Spark当中,RDD本身的概念为弹性分布式数据集,归根结底RDD就是数据集,RDD[T]可以查看出数据集中数据的类型.
②在Spark中,对数据的所有操作不外乎创建RDD、转化已有的RDD、调用RDD操作进行求值。
实例程序1:
运行结果:
Spark 1you 2Hello 4hello 2baby 1me 1Hadoop 1
实例程序2:spark-shell下的部分截图
scala> val words = lines.flatMap(line=>line.split(" "))words: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at flatMap at <console>:29scala> words.collect…………res0: Array[String] = Array(hello, you, spark, hadoop, java, scala, java, hello)
从运行结果上可以看出,flatMap的返回的数据类型是Array[String],而不再是Array[Array[String]]。
1 0
- Spark系列修炼---入门笔记9
- Spark系列修炼---入门笔记1
- Spark系列修炼---入门笔记2
- Spark系列修炼---入门笔记3
- Spark系列修炼---入门笔记4
- Spark系列修炼---入门笔记5
- Spark系列修炼---入门笔记10
- Spark系列修炼---入门笔记8
- Spark系列修炼---入门笔记11
- Spark系列修炼---入门笔记12
- Spark系列修炼---入门笔记13
- Spark系列修炼---入门笔记14
- Spark系列修炼---入门笔记15
- Spark系列修炼---入门笔记16
- Spark系列修炼---入门笔记17
- Spark系列修炼---入门笔记18
- Spark系列修炼---入门笔记19
- Spark系列修炼---入门笔记20
- 任务调度器之azkaban(一)
- Java多线程之Lock的使用
- linux 保存 alias 别名
- PHP模板的优点
- 带你玩转Visual Studio——VC++的多线程开发
- Spark系列修炼---入门笔记9
- Mac操作快捷键总结
- C含参数的宏与函数的区别
- 常用排序算法汇总
- 解决iOS10不能跳转系统WiFi列表的问题
- IP-TOS字段
- 支持向量机SVM引导
- 常用的网站和工具
- C与指针 五 矩阵相乘