Я пытаюсь мультипроцессировать кучу данных в нескольких файлах. Есть 60 файлов по 500 Мб каждый. Я должен открыть каждый файл, прочитать его, выполнить некоторые задачи и записать результаты в файл ...
import pandas as pd
import os
import multiprocessing as mp
def filter(df_hh):
result = do some filtering
return result
def read(file):
df = pd.read_csv(file)
df_wr = []
df_d = divide data into steps and do for loop for processing
thread = mp.Pool()
for d in df_d:
thread.apply_async(filter, args=(df_hh, ), callback=df_wr.append)
thread.close()
thread.join()
# write data to a file
if __name__ == '__main__':
files = get all filenames in a list
for file in files:
p = mp.Process(target=read, args=(file, ))
p.start()
Это не работает. Как система сталкивается с ошибками памяти.
OSError: [Errno 12] Невозможно выделить память
Я работаю на сервере с cpu_count = 80.
Есть предложения по улучшению кода ??