#python #pandas #memory-management #multiprocessing #out-of-memory
#python #pandas #управление памятью #многопроцессорная обработка #нехватка памяти
Вопрос:
Используя следующий код, я пытаюсь параллельно читать, обрабатывать и объединять кучу файлов CSV.
def read_process(file):
df = pd.read_csv(file)
process_df(df)
return df
if __name__ == '__main__':
path = '/path/to/directory/'
files = [os.path.join(path, file) for file in os.listdir(path)]
with Pool() as pool:
dfs = pool.map(read_process, files)
df = pd.concat(dfs, ignore_index=True)
Однако потребление памяти экспоненциально увеличивается для больших наборов данных. Как я могу ограничить объем используемой памяти Pool
?
Комментарии:
1. возможно, ограничить количество рабочих — т. е.
Pool(2)
для 2 рабочих.2. или, может
read_process
быть, введите и сохраните csv в новый файл, а затем создайте код, который считывает csv по частям и сохраняет в другом файле.