python-3.x - 内存不足读取和分组 csv 文件包含 300M 行数并按 dask.dataframe 分组
问题描述
我是 Dask 的新手,遇到了一些麻烦。pandas 无法放入内存,所以我改用 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)
解决方案
我的第一个猜测是您的输出结果 ,group
非常大并且不适合内存。如果您有很多组,就会出现这种情况。
推荐阅读
- linux - 远程命令,相同的用户,不同的行为
- java - SpringBoot中不可解析的父POM
- c# - 使用 7zip sdk 散列解压缩和压缩文件 - c#
- python - 将曲线添加到散点图的上下边界
- python - 由于图像杂质,skimage peak local max 发现附近有多个点
- opengl - 设置基本类型(点、线等)的大小/粗细
- javascript - 我无法在服务器端访问 socket.io?
- r - 使用选择表达式中列名的变量对 data.frame 进行子集
- javascript - 验证动态输入字段 Jquery
- symfony - Symfony 命令调用其他命令并等待确认