Apache Spark 如何处理不适合内存的数据?

Posted

技术标签:

【中文标题】Apache Spark 如何处理不适合内存的数据?【英文标题】:How does Apache Spark process data that does not fit into the memory? 【发布时间】:2018-12-22 02:58:38 【问题描述】:

我返回了一个 spark 程序,从 2GB 内存文件中查找记录数,存储内存为 1GB,它运行成功。

但我的问题是 2GB 文件无法放入 1GB 内存,但 spark 仍然如何处理文件并返回计数。

【问题讨论】:

What will spark do if I don't have enough memory?的可能重复 【参考方案1】:

仅仅因为您在磁盘中有 2Gb 文件,并不意味着它会在 RAM 中占用相同或更少或更多的内存。另一点是您的文件如何存储在磁盘中(行格式或列格式)。假设它以 ORC 格式存储,那么它已经有一个关于表的预先计算的详细信息。

我会建议您检查有关内存详细信息的 spark 执行器和任务详细信息,以了解用于完成 DAG 的阶段/执行器/任务。

【讨论】:

以上是关于Apache Spark 如何处理不适合内存的数据?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习中如何处理不平衡数据?

如何处理不均衡数据

如何处理不受信任的服务 URL?

如何处理不安全的 XMLHttpRequest 端点 [重复]

如何处理不返回的函数

如何处理不抛出 catch 的 API 请求? (403 错误)