如何处理数百万行数据以进行分析/可视化

数据挖掘 熊猫 sql 海运
2021-10-14 18:52:52

我在 Sql server 的 2 个表中有数据。第一个表有大约 1000 万行和 8 列。第二个表有 600 万行和 60 列。

我想使用 pandas 将这些表导入 Python 笔记本(我在“chunksize”中导入),然后合并它们,然后对结果表运行分析。

由于可能的硬件限制,我无法导入数据。系统硬件配置如下:

RAM: 4GB
Storage: 160 GB, 
CPU : Dual core CPU. 

即使导入通过(这似乎很困难),合并后我的结果表也将有 500 万行和 40 列。

在 python notebook 中使用 pandas、seaborn 在结果表的列上执行分析/可视化是否可行?

很想了解:

解决问题的下一步应该是什么?

在 Windows 2012 服务器上安装 Anaconda 可行吗?(此服务器有更多内存)

2个回答

Pandas 在它开始工作之前将所有内容加载到内存中,这就是为什么你的代码因为内存不足而失败的原因。解决此问题的一种方法是扩展您的系统,即拥有更多 RAM,但这不是一个好的解决方案,因为这种方法最终无法扩展。

其他选择是在分布式系统上使用 spark 或 flink 等大数据库。您可以尝试在 Windows 服务器上安装,但这也不会适合您。

使用 Pandas 的 chunksize 选项来加载。您还可以使用 Dask、Koalas 和 Numba 和 ray 进行并行计算。