apache-spark - spark如何在后台读取数据?
问题描述
例如,我对 spark 如何从 s3 读取数据感到有些困惑。假设要从 s3 读取 100 GB 的数据,并且 spark 集群的总内存为 30 GB。一旦触发操作,将触发读取所有 100 GB 的数据并将最大数量的分区存储在内存中,并将其余分区溢出到磁盘,或者它会仅读取它可以存储在内存中的分区处理它们,然后读取其余部分数据?任何指向某些文档的链接都将受到高度赞赏。
解决方案
Spark FAQ 上有一个关于此的问题:
我的数据是否需要放入内存才能使用 Spark?
不会。Spark 的操作员会在数据不适合内存时将其溢出到磁盘,从而使其能够在任何大小的数据上运行良好。同样,不适合内存的缓存数据集要么溢出到磁盘,要么在需要时动态重新计算,这取决于 RDD 的存储级别。
MEMORY_AND_DISK
将 RDD 作为反序列化的 Java 对象存储在 JVM 中。如果 RDD 不适合内存,请将不适合的分区存储在磁盘上,并在需要时从那里读取它们。
推荐阅读
- c++ - 亲爱的 IMGUI 和 DirectX 12 覆盖 (DXGI_ERROR_INVALID_CALL)
- jquery - 没有使用ajax刷新页面的在线计数器
- c# - 如何以编程方式将权限分配给 Azure AD 应用
- php - 从 html 表单将数据添加到 csv 文件时,我在第 7 行收到错误为非法偏移类型
- javascript - 如何在 Strapi 中删除子对象
- css - Winnovative - CSS 网格未正确转换
- angular - Angular 10:代码不等待订阅完成
- python - 不能制作谷歌搜索的正则表达式?
- firebase - 使用 Firebase ID 令牌对 Firebase 存储进行身份验证
- google-cloud-platform - 无法使用 Nvidia Tesla K80 启动 VM 实例