首页 > 解决方案 > spark如何在后台读取数据?

问题描述

例如,我对 spark 如何从 s3 读取数据感到有些困惑。假设要从 s3 读取 100 GB 的数据,并且 spark 集群的总内存为 30 GB。一旦触发操作,将触发读取所有 100 GB 的数据并将最大数量的分区存储在内存中,并将其余分区溢出到磁盘,或者它会仅读取它可以存储在内存中的分区处理它们,然后读取其余部分数据?任何指向某些文档的链接都将受到高度赞赏。

标签: apache-sparkamazon-s3pyspark

解决方案


Spark FAQ 上有一个关于此的问题:

我的数据是否需要放入内存才能使用 Spark?

不会。Spark 的操作员会在数据不适合内存时将其溢出到磁盘,从而使其能够在任何大小的数据上运行良好。同样,不适合内存的缓存数据集要么溢出到磁盘,要么在需要时动态重新计算,这取决于 RDD 的存储级别

MEMORY_AND_DISK

将 RDD 作为反序列化的 Java 对象存储在 JVM 中。如果 RDD 不适合内存,请将不适合的分区存储在磁盘上,并在需要时从那里读取它们。


推荐阅读