【发布时间】:2016-05-12 06:13:43
【问题描述】:
在spark中,我想知道下一个RDD具体化时前一个RDD会发生什么。
假设我有以下 scala 代码
val lines = sc.textFile("/user/cloudera/data.txt")
val lineLengths = lines.map(s => s.length)
val totalLength = lineLengths.reduce((a, b) => a + b)
我有linesRDD 是一个基本的RDD 同样我有linesLengths RDD
我知道这两个 RDD 在调用 reduce Action 时会实现。
我的问题是,当数据流经这 2 个 RDD 时,当linesLengthsRDD 被具体化时,linesRDD 会发生什么。
一旦linesLengthsRDD被具体化,那么linesRDD中的数据是否会被删除?
假设在生产 Spark 作业中可能有 100 个 RDD,针对第 100 个 RDD 调用单个 Action。
当第 99 个 RDD 实现时,第一个 RDD 中的数据会发生什么?
所有RDD中的数据都被删除,只有各自的最终Action返回各自的输出?
或者
一旦 RDD 按照 DAG 将其数据传递给下一个 RDD,每个 RDD 中的数据就会自动删除?
【问题讨论】:
标签: apache-spark