代码之家  ›  专栏  ›  技术社区  ›  Eghbal

使用延迟(DASK)读取大型CSV文件

  •  0
  • Eghbal  · 技术社区  · 7 年前

    我在用 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 :合并数据集和一些计算。

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   mdurant    7 年前

    是的,请继续并延迟您的功能,并将其提交给Dask。记忆最沉重的可能是 function_3 你可能想考虑一下你能在内存中保存多少个——使用分布式调度器来控制你拥有多少个工人和线程以及它们各自的内存限制。 https://distributed.readthedocs.io/en/latest/local-cluster.html

    最后,你我肯定不想 回来 最终合并的数据帧肯定不适合内存:您可能想在它们上面进行聚合或写入其他文件。