Что я могу сделать, чтобы один и тот же файл не читался более двух раз?
Для фона у меня есть детали ниже
Я пытаюсь прочитать список файлов в папке, преобразовать его, выведите его в файл и сначала проверьте разрыв до и после преобразования
для читающей части
def load_file(file):
df = pd.read_excel(file)
return df
file_list = glob2.glob("folder path here")
future_list = [delayed(load_file)(file) for file in file_list]
read_result_dd = dd.from_delayed(future_list)
После этого я выполню некоторое преобразование данных:
def transform(df):
# do something to df
return df
transformation_result = read_result_dd.map_partitions(lambda df: transform(df))
я хотел бы добиться двух вещей: сначала получить вывод преобразования:
Outputfile = transformation_result.compute()
Outputfile.to_csv("path and param here")
второй получить компарацию
read_result_comp = read_result_dd.groupby("groupby param here")["result param here"].sum().reset_index()
transformation_result_comp = transformation_result_dd.groupby("groupby param here")["result param here"].sum().reset_index()
Checker = read_result_dd.merge(transformation_result, on=['header_list'], how='outer').compute()
Checker.to_csv("path and param here")
Проблема в том, что если я позвонюOutputfile
и Checker
в последовательности, то есть:
Outputfile = transformation_result.compute()
Checker = read_result_dd.merge(transformation_result, on=['header_list'], how='outer').compute()
Outputfile.to_csv("path and param here")
Checker.to_csv("path and param here")
будет считывать весь файл дважды (для каждого вычисления)
Есть ли способ получить результат чтениясделано только один раз?
Также есть ли способ, чтобы оба compute()
работали в последовательности? (если я запускаю его в две строки, из панели мониторинга dask я могу видеть, что он запустит первую, очистит панель мониторинга и запустит вторую, вместо того, чтобы запускать обе в одной последовательности)
Я не могу запустить .compute()
для результирующего файла, потому что мой баран не может его содержать, результирующий кадр данных слишком велик. и средство проверки, и выходной файл значительно меньше по сравнению с исходными данными.
Спасибо