[scala-spark] RDD 的 控制 或 执行 操作
发布时间
阅读量:
阅读量
Spark具备将RDD存储于内存或磁盘中的能力,当数据被缓存至内存时,能够显著提升迭代运算效率及各计算模块间的数据共享能力。通常情况下,执行节点的60%内存空间被分配用于数据缓存,剩余40%则用于任务的执行过程。在Spark中,通过persist与cache方法实现数据的持久化操作,其中cache方法可视为persist方法的一个特定应用场景。
- cache():RDD[T]
- persist():RDD[T]
- persist(level:StorageLevel):RDD[T]
1. 什么情况下需要对数据进行持久化
- 某一阶段的运算过程耗时严重,若需重新执行则成本较高,因此有必要实施数据持久化操作
- 当计算流程较为复杂且链条较长时,重复计算所需付出的代价同样不容忽视
- 在涉及checkpoint机制的RDD中,必须确保数据被持久化存储。由于checkpoint机制具有延迟触发特性,系统会为checkpoint相关的RDD生成新的任务流程。如果未提前执行persist操作,则在进行checkpoint处理时将重新计算数据。因此,在执行checkpoint操作前必须完成persist步骤。在完成persist的前提下,数据已经过一次计算,在后续处理过程中能够显著提升运算效率
- 在进行s
全部评论 (0)
还没有任何评论哟~
