我有50 GB的数据集,它不适合我的工作计算机的8 GB RAM,但它有1 TB的本地硬盘。
下面来自官方文档的链接提到,如果数据不适合内存,Spark可以使用本地硬盘。
http://spark.apache.org/docs/latest/hardware-provisioning.html
本地磁盘
虽然Spark可以在内存中执行大量计算,但它仍然使用本地磁盘存储不适合RAM的数据,以及在阶段之间保持中间输出。
对我来说,计算时间根本不是优先事项,但由于缺乏替代选项,将数据放入一台计算机的RAM/硬盘进行处理更为重要。
注:我正在寻找一个不包括以下项目的解决方案
- 增加RAM
- 示例&减小数据大小
- 使用云或群集计算机
我的最终目标是使用Spark MLLIB来构建机器学习模型。我正在寻找现实生活中实用的解决方案,人们成功地使用Spark在单台计算机中以独立/本地模式对不适合RAM的数据进行操作。有人在没有重大限制的情况下成功地做到了这一点吗?
问题
-
SAS具有类似的核外处理能力,使用该能力可以使用RAM和RAM;用于建模等的本地硬盘。当数据超过RAM大小时,Spark可以以同样的方式工作吗?
-
SAS以".ssa7bdat"格式将完整的数据集持久化写入硬盘,Spark能做类似于硬盘的持久化吗?
- 如果可能的话,如何安装和配置Spark
查看http://spark.apache.org/docs/latest/programming-guide.html#rdd-持久性您可以根据需要使用各种持久性模型。MEMORY_AND_DISK将解决您的问题。如果您想要更好的性能,请使用MEMORY_AND_DISK_SER,它以序列化的方式存储数据。