首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RDD在RDD中的内存使用

RDD在RDD中的内存使用
EN

Stack Overflow用户
提问于 2016-06-09 07:54:08
回答 1查看 357关注 0票数 0

让我们从冲积内存中创建一个RDD。

代码语言:javascript
复制
rdd1 = sc.textFile("alluxio://.../file1.txt")
rdd2 = rdd1.map(...)

rdd2驻留在alluxio上还是spark的堆上。

另外,像pairRDD1.join(pairRDD2)这样的操作(都是对RDD )会在冲积堆或火花堆上创建一个新的RDD。

第二个问题的原因是我需要加入两个大的RDD,它们都是关于冲积的。join是使用冲积for的内存,还是RDD的RDD会被拉到火花内存中进行连接(结果RDD将驻留在哪里)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-24 14:16:58

火花转换是以懒散的方式进行评估的。这意味着在需要结果之前不会对map()进行评估,并且不会消耗任何火花内存。只有当您显式地调用RDD上的cache()时,RDD才会消耗Spark内存。

因此,当您从Alluxio加入2个RDDs时,只有RDDs的源数据将是内存,在Alluxio中。在连接期间,Spark将使用执行连接所需的内存。

结果的RDD驻留在哪里取决于您对该RDD所做的操作。如果要将生成的RDD写入文件,则该RDD不会在Spark内存中完全物化,而是会写入该文件。如果该文件位于Alluxio中,那么它将位于Alluxio内存中,而不是Spark内存中。只有在显式调用cache()时,结果的RDD才会在火花内存中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37719969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档