Чтение больших файлов CSV с использованием отложенного (DASK) - PullRequest
0 голосов
/ 03 марта 2019

Я использую delayed для чтения большого количества CSV-файлов:

import pandas as pd

def function_1(x1, x2):         
    df_d1 = pd.read_csv(x1)
    # Some calculations on df_d1 using x2.
    return df_d1

def function_2(x3):         
    df_d2 = pd.read_csv(x3)
    return df_d2

def function_3(df_d1, df_d2):         
    # some calculations and merging data-sets (output is "merged_ds").
    return merged_ds
  • function_1: импорт набора данных 1 и выполнение некоторых вычислений.
  • function_2: импорт набора данных 2.
  • function_3: объединение наборов данных и некоторые вычисления.

Далее я использую цикл для вызова этих функций, используя delayedфункция.У меня много CSV-файлов, и каждый файл занимает более 500 МБ.Это подходящая процедура для выполнения моих задач с использованием DASK (delayed)?

1 Ответ

0 голосов
/ 05 марта 2019

Да, пожалуйста, отложите ваши функции и отправьте их в Dask.Самый большой объем памяти, вероятно, будет function_3, и вы можете подумать, сколько из них вы можете хранить в памяти за раз - используйте распределенный планировщик, чтобы контролировать, сколько у вас рабочих и потоков, и их соответствующие пределы памятиhttps://distributed.readthedocs.io/en/latest/local-cluster.html

Наконец, вы, я уверен, не хотите возвращать окончательных объединенных фреймов данных, которые, безусловно, не помещаются в памяти: вы, вероятно, хотите объединиться по ним или записатьв другие файлы.

...