Advertisement

[scala-spark] RDD 的 控制 或 执行 操作

阅读量:

Spark具备将RDD存储于内存或磁盘中的能力,当数据被缓存至内存时,能够显著提升迭代运算效率及各计算模块间的数据共享能力。通常情况下,执行节点的60%内存空间被分配用于数据缓存,剩余40%则用于任务的执行过程。在Spark中,通过persist与cache方法实现数据的持久化操作,其中cache方法可视为persist方法的一个特定应用场景。

  • cache():RDD[T]
  • persist():RDD[T]
  • persist(level:StorageLevel):RDD[T]

1. 什么情况下需要对数据进行持久化

  1. 某一阶段的运算过程耗时严重,若需重新执行则成本较高,因此有必要实施数据持久化操作
  2. 当计算流程较为复杂且链条较长时,重复计算所需付出的代价同样不容忽视
  3. 在涉及checkpoint机制的RDD中,必须确保数据被持久化存储。由于checkpoint机制具有延迟触发特性,系统会为checkpoint相关的RDD生成新的任务流程。如果未提前执行persist操作,则在进行checkpoint处理时将重新计算数据。因此,在执行checkpoint操作前必须完成persist步骤。在完成persist的前提下,数据已经过一次计算,在后续处理过程中能够显著提升运算效率
  4. 在进行s

全部评论 (0)

还没有任何评论哟~