【问题标题】:How to figure out if a modin dataframe is going to fit in RAM?如何确定 modin 数据帧是否适合 RAM?
【发布时间】:2022-04-26 02:58:43
【问题描述】:

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

    标签: python pandas modin


    【解决方案1】:

    我是否可以假设某些分区位于 RAM 中而其他分区位于交换中?

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

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

    在 Dask 上,modin uses dask.Client.scatter 也不能保证数据将去往何处,以存储分区数据。我不知道有多少存储数据真正在 RAM 中。

    【讨论】:

    • 谢谢你!我开始阅读你链接的东西,现在我开始欣赏这个兔子洞的深度,如果没有人很快直接回答这个问题(我相信会是这样)我会接受你的回答,因为它显示了可怕的记忆背景管理复杂性
    猜你喜欢
    • 1970-01-01
    • 2020-12-21
    • 2011-10-18
    • 2012-01-16
    • 1970-01-01
    • 2012-07-29
    • 2021-10-11
    • 2011-09-24
    • 1970-01-01
    相关资源
    最近更新 更多