Spark 中Transformation 、Action操作 以及RDD的持久化
来源:互联网 发布:厨余垃圾处理器 知乎 编辑:程序博客网 时间:2024/05/12 00:55
1、常用的Transformation操作有
map、filter、flatMap、groupByKey、reduceByKey、sortByKey、join、cogroup
2、常用的Action操作有
reduce、collect、count、take、saveAsTextFile、countByKey、foreach
3、RDD的持久化原理
Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并且在之后对该RDD的反复使用中,直接使用内存缓存的partition。这样的话,对于针对一个RDD反复执行多个操作的场景,就只要对RDD计算一次即可,后面直接使用该RDD,而不需要反复计算多次该RDD。
巧妙使用RDD持久化,甚至在某些场景下,可以将spark应用程序的性能提升10倍。对于迭代式算法和快速交互式应用来说,RDD持久化,是非常重要的。
要持久化一个RDD,只要调用其cache()或者persist()方法即可。在该RDD第一次被计算出来时,就会直接缓存在每个节点中。而且Spark的持久化机制还是自动容错的,如果持久化的RDD的任何partition丢失了,那么Spark会自动通过其源RDD,使用transformation操作重新计算该partition。
备注:cache()和persist() 的使用是有原则,必须在Transformation或者TextFile 等创建了一个RDD之后,直接连续调用cache()或者persist() 方法,如果是先创建RDD ,在单独调用cache()或者persist() 方法是没有用的。
Spark自己也会在shuffle操作时,进行数据的持久化,比如写入磁盘,主要是为了在节点失败时,避免需要重新计算整个过程。
4、 如何选择RDD持久化策略
Spark提供的多种持久化级别,主要是为了在CPU和内存消耗之间进行取舍。下面是一些通用的持久化级别的选择建议:
1)、优先使用MEMORY_ONLY,如果可以缓存所有数据的话,那么就使用这种策略。因为纯内存速度最快,而且没有序列化,不需要消耗CPU进行反序列化操作。
2)、如果MEMORY_ONLY策略,无法存储的下所有数据的话,那么使用MEMORY_ONLY_SER,将数据进行序列化进行存储,纯内存操作还是非常快,只是要消耗CPU进行反序列化。
3)、如果需要进行快速的失败恢复,那么就选择带后缀为_2的策略,进行数据的备份,这样在失败时,就不需要重新计算了。
4)、能不使用DISK相关的策略,就不用使用,有的时候,从磁盘读取数据,还不如重新计算一次。
- Spark 中Transformation 、Action操作 以及RDD的持久化
- spark中RDD的transformation&action
- spark中RDD的transformation&action
- spark RDD transformation和action操作
- spark的RDD中的action(执行)和transformation(转换)两种操作中常见函数介绍
- Spark RDD transformation操作
- spark RDD transformation操作
- Spark之RDD的Transformation操作
- spark 中RDD的持久化原理
- spark rdd详解二(transformation与action操作)
- Spark-rdd的持久化
- spark RDD transformation与action函数整理
- Spark总结(二)——RDD的Transformation操作
- 学习spark:三、RDD的action操作
- Spark RDD中Transformation的map、flatMap、mapPartitions、glom详解
- Spark RDD中Transformation的filter、distinct、cartesian、union详解
- Spark RDD中Transformation的mapValues、subtract、sample、takeSample详解
- Spark RDD中Transformation的groupBy、partitionBy、cogroup详解
- 容器云平台使用体验:数人云Crane(续)
- HTML锚点
- Webform的验证
- linux命令
- 简单的android系统设置界面实现
- Spark 中Transformation 、Action操作 以及RDD的持久化
- 关于互相传输文件集合问题
- 视频弹幕插件
- 触发器
- jQuery图片放大镜插件
- 在VS2012中编译WinXP兼容的程序
- unity雾效
- 利用java反射原理给实体类注值
- (枚举)The Pilots Brothers' refrigerator