如何确定 modin 数据帧是否适合 RAM?



我正在学习如何处理大型数据集,所以我使用modin.pandas。 我正在做一些聚合,之后 50GB 数据集的大小有望接近 5GB - 现在我需要检查:如果 df 足够小以适合 RAM,我想将其投射到 pandas 并享受一个无错误的可靠库。 所以,很自然的问题是:如何检查它?.memory_usage(deep=True).sum()告诉我整个 df 使用了多少,但我不可能从这个数字中知道其中有多少在 RAM 中,有多少在交换中 - 换句话说,我需要多少空间才能将 DF 转换为熊猫。还有其他方法吗?我什至假设某些分区位于 RAM 中而其他分区位于交换中是否正确?如何计算当我调用 RAM 时会淹没 RAM 的数据量._to_pandas()?是否有某种隐藏的.__memory_usage_in_swap_that_needs_to_fit_in_ram()

我什至假设某些分区位于 RAM 中而其他分区位于交换中是否正确?

Modin没有指定数据应该在RAM中还是交换中。

在 Ray 上,它使用ray.put来存储分区。ray.put不保证数据的去向。请注意,当数据块对于其内存中的对象存储来说太大时,Ray 会将数据块溢出到磁盘。您可以使用ray memory来获取 Ray 使用的每个存储空间的摘要。

在 Dask 上,modin 使用dask.Client.scatter,它也不保证数据的去向,来存储分区数据。我不知道有什么方法可以弄清楚有多少存储的数据真正在 RAM 中。

相关内容

  • 没有找到相关文章

最新更新