вложение процесса в родительский процесс - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь мультипроцессировать кучу данных в нескольких файлах. Есть 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. Есть предложения по улучшению кода ??

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