我在数据库中有两个表,每个表包含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')