Ошибка памяти при объединении нескольких CSV - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь объединить несколько сотен файлов CSV, каждый размером от 100 до 500 МБ.Все они имеют разные столбцы (от 10 до 300 столбцов в CSV), за исключением 1 (ID_KEY).Я использовал следующую функцию:

import dask.dataframe as dd
def concat_all(my_csv_list, data_path, save_to):    
    datasets = []
    for csv in my_csv_list:
        df = dd.read_csv(os.path.join(data_path,csv), 
                         dtype=str)
        datasets.append(df)
    result = dd.concat(datasets)
    result.to_csv(save_to)

Однако использование памяти быстро увеличивается до 90%, и сценарий останавливается с ошибкой памяти.Я не могу просто объединить все CSV построчно, потому что мне нужны новые столбцы, которые будут заполнены NA.Я думаю, что я все еще мог бы технически обработать это «вручную» (сохраняя индекс столбцов и добавляя пустые запятые в каждую строку, которую я копирую), но я бы предпочел более чистое и простое решение ...

...