【问题标题】:Reading large CSV files using delayed (DASK)使用延迟(DASK)读取大型 CSV 文件
【发布时间】:2019-07-24 23:44:17
【问题描述】:

我正在使用delayed 读取许多大型 CSV 文件:

import pandas as pd

def function_1(x1, x2):         
    df_d1 = pd.read_csv(x1)
    # Some calculations on df_d1 using x2.
    return df_d1

def function_2(x3):         
    df_d2 = pd.read_csv(x3)
    return df_d2

def function_3(df_d1, df_d2):         
    # some calculations and merging data-sets (output is "merged_ds").
    return merged_ds
  • function_1:导入数据集 1 并进行一些计算。
  • function_2:正在导入数据集 2。
  • function_3:合并数据集和一些计算。

接下来,我使用delayed 函数使用循环来调用这些函数。我有很多 CSV 文件,每个文件都超过 500MB。这是使用 DASK (delayed) 完成我的任务的合适程序吗?

【问题讨论】:

  • 所以你想让function_x 被延迟?为什么不生成mcve?

标签: python pandas csv dask dask-delayed


【解决方案1】:

是的,请继续延迟您的函数并将它们提交给 Dask。内存最重的可能是function_3,您可能需要考虑一次可以在内存中保存多少个 - 使用分布式调度程序来控制您拥有多少工作程序和线程以及它们各自的内存限制https://distributed.readthedocs.io/en/latest/local-cluster.html

最后,我确定您不想返回最终合并的数据帧,这肯定不适合内存:您可能是要聚合它们或写出其他文件。

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 1970-01-01
    • 2021-06-29
    • 2021-09-02
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 2022-08-06
    • 1970-01-01
    相关资源
    最近更新 更多