内存不足的读取和分组csv文件包含300M的行和按dask.dataframe分组

时间:2019-01-23 12:56:39

标签: python-3.x pandas dataframe dask

我是Dask的新手,遇到了一些麻烦。 大熊猫无法容纳在内存中,因此我切换为使用Dask.dataframe。我希望Dask将以适合内存的小块形式处理事物。但是Dask仍然会耗尽所有内存。 它不断导致“ 进程被杀死

#import pandas as pd
import dask.dataframe as dd
import numpy as np
import timeit
header =['DATE','IMSI','WEBSITE','LINKUP','LINKDOWN','COUNT','CONNECTION']
df = dd.read_csv('/home/mahmoudod/Desktop/to_dict/text1.txt'
                ,names = header
                ,header=0
                )
df.columns.str.strip()
df.DATE = dd.to_datetime(df.DATE, errors='coerce')
group = df.groupby(['IMSI','WEBSITE']).agg({'DATE':[max, min,'count']
    ,'LINKUP':'sum'
    , 'LINKDOWN':'sum'
    , 'COUNT':'sum'
    ,'CONNECTION':'sum'
            }).compute()
group.to_csv('/home/mahmoudod/Desktop/to_dict/output.txt')
print(df.info)
#print(group)

1 个答案:

答案 0 :(得分:0)

我的第一个猜测是您的输出结果group很大,不适合内存。如果您有很多组,就会是这种情况。