【发布时间】:2023-03-13 22:08:01
【问题描述】:
我想学习一个大数据文件(7GB):800 行,500 万列。所以我想加载这些数据并将它们放在我可以使用的形式(二维列表或数组)中。
问题就在这里,当我加载数据并尝试存储它们时,它们使用了我所有的内存 (12GB) 并停在第 500 行。
我听说过很多关于如何使用此类数据的信息,例如使用块和迭代器,但我想将它们完全加载到内存中,以便进行交叉验证。 我尝试使用 pandas 来帮助我,但问题是一样的。
按我的意愿加载和存储整个 7GB 数据是否存在一些问题?或者任何其他可以帮助我的想法?
【问题讨论】:
-
减去其他正在使用的资源后,您还有 12 GB 的 RAM 吗?
-
不管怎样,如果你真的想把所有的东西都加载到内存中,但是没有足够的内存,答案是购买更多的内存。或者以某种方式压缩数据。
-
取决于你想做什么。正在进行的是将数据拆分为多个部分,然后每次加载一个部分。
-
@timgeb 是正确的。您声明您想一次将所有内容加载到内存中。分块/迭代(例如使用生成器读取数据)不会改变任何事情,因为最终,它都将在内存中。您需要插入更多 RAM,重新考虑您的解决方案,或者准备好浪费时间在交换空间中折腾。
-
好吧,你可以建立一个集群并在上面运行Apache Spark,使用Spark DataFrames,这与Pandas非常相似。之后,您应该能够在分布式系统上并行处理您的数据帧
标签: python pandas numpy machine-learning large-data