最近,我读了一本书《高性能火花》,当谈到重用rdds时,它提供了一个示例来说明如何保持rdd以避免重复计算多个动作
优化前
val sorted = rddA.sortByKey()
val count = sorted.count()
val sample: Long = count/10
sorted.take(sample.toInt)
优化后
val sorted = rddA.sortByKey()
val count = sorted.count()
val sample: Long = count/10
rddA.persist()
sorted.take(sample.toInt)
我在两点上有些困惑: 1.为什么在rddA上调用除sorted之外的persist() 2.为什么在第一个动作(sorted.count())之后而不是两个动作(sorted.count()和sorted.take())之前调用persist()
在此先感谢您的帮助!