开发者学堂课程【大数据实时计算框架Spark快速入门:Spark算子详解及优化1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/100/detail/1680
Spark 算子详解及优化1
内容介绍:
一、优先级
二、Parallelized 算子
三、External Datasets 算子
四、Tranformations 算子
五、代码样例
六、Mapoperater 与 MapPartionsoperater 的区别
一、优先级
在代码里优先级最高,其次是在提交时,再其次是 sparkinv.sh ,最后是源码写的默认配置。
二、Parallelized 算子
Parallelized 可以并行化一个集合把一个集合变成一个 RDD
三、External Datasets 算子
textfile 默认选用 Hadoop 里面的类去读取,用 inputformat 进行切割。
四、Tranformations 算子
Tranformations :罗列了一些延迟操作的算子
map 算子对每个元素进行操作
fliter 过滤
五、代码样例
Mapoperater.java 步骤
首先创建一个 List ,接着通过 parallelized 方法把 List 并行化为一个 RDD ,接着对它来进行算子化操作,再接着调用 foreach 进行打印。
六、Mapoperater 与 MapPartionsoperater 的区别
map 算子:一次就处理一个 partition 的一条数据!
mapPartitions 算子:一次处理一个 partition 中所有的数据!
推荐的使用场景:如果你的 RDD 的数据不是特别多,那么采用 MapPartitions 算子代替 map 算子,可以加快处理速度
比如说100亿条数据,你一个 partition 里面就有 10 亿条数据,不建议使用mapPartitions ,因为一下子返回大量数据可能会导致内存溢出。
MapPartionsoperater 算子可以说是对 Mapoperate 算子级别的优化。