x * x) result.persist(StorageLevel.DISK_-6ren">
gpt4 book ai didi

scala - 为什么 persist 在 Holden Karau 的书 "Learning Spark"中像 Action 一样使用?

转载 作者:行者123 更新时间:2023-12-01 09:12:37 24 4
gpt4 key购买 nike

我正在阅读“Learning spark”,并注意到这种代码:

val result = input.map(x => x * x)
result.persist(StorageLevel.DISK_ONLY)
println(result.count())
println(result.collect().mkString(","))

这段代码真的持久化了result rdd吗?我认为在 Spark 中一切都是不可变的,但在这种情况下,看起来我们正在改变 result rdd

这段代码不应该这样写吗? :

val result = input.map(x => x * x)
val persistedResult = result.persist(StorageLevel.DISK_ONLY)
println(persistedResult.count())
println(persistedResult.collect().mkString(","))

书中还有很多这样的代码示例,所以让我想知道......

最佳答案

与类型转换不同,persist()应用于这个数据集。这是因为 persist 实际上只是标记 数据集。来自 Spark Programming Guide :

You can mark an RDD to be persisted using the persist() or cache() methods on it. The first time it is computed in an action, it will be kept in memory on the nodes.

关于scala - 为什么 persist 在 Holden Karau 的书 "Learning Spark"中像 Action 一样使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58773682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com