经过一些处理后合并两个非常大的数据帧,导致内存出现错误

时间:2018-11-08 16:01:35

标签: pandas bigdata dask dask-distributed

我在数据库中有两个表,每个表包含9 gb的数据。经过一些处理后,我想加入两个表。我将两个表都装入了dask数据帧,并进行了一些处理,并导出到CSV文件,但是即使我做了500个分区,我也遇到了内存错误。

我检查了Dask Dashboard,它在内存中存储了数据。我的PC有24GB的RAM和4个内核。

import dask.dataframe as dd
import pandas as pd
import numpy as np

from dask.distributed import Client
client = Client()  

database_uri = 'postgresql://postgres:password@localhost:5432/database'

df_fbo = dd.read_sql_table('fbo_xml_clean_data_v1', npartitions=500, index_col='id', uri=database_uri)
df_fpds = dd.read_sql_table('fpds_opportunities', npartitions=500, index_col='id', uri=database_uri)

df_fbo.SOLNBR = df_fbo.SOLNBR.str.replace('\W', '')
df_fpds.solicitation_id = df_fpds.solicitation_id.str.replace('\W', '')
df_fbo.merge(df_fpds, left_on='SOLNBR', right_on='solicitation_id', how='inner', npartitions=500).to_csv('fbo_fpds_merge-*.csv')

Dask Dashboard Log

0 个答案:

没有答案