Объединение двух очень больших фреймов данных после некоторой обработки приводит к ошибке памяти в Dask - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть две таблицы в базе данных, и каждая таблица содержит 9 ГБ данных. Я хочу объединить две таблицы после некоторой обработки. Я загрузил обе таблицы в dask dataframe, выполнил некоторую обработку и экспортировал их в файл CSV, но у меня возникает ошибка памяти, даже если я делаю 500 разделов.

Я проверил на Dask Dashboard, он хранит данные в памяти. Мой компьютер имеет 24 ГБ оперативной памяти и 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...