我能做些什么來防止同一個文件被讀取兩次以上?對于背景,我有以下詳細信息我試圖讀取文件夾中的文件列表,對其進行轉(zhuǎn)換,將其輸出到文件中,并檢查轉(zhuǎn)換前后的間隙首先是閱讀部分def load_file(file): df = pd.read_excel(file) return dffile_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)之后,我將對數(shù)據(jù)進行一些轉(zhuǎn)換:def transform(df): # do something to df return dftransformation_result = read_result_dd.map_partitions(lambda df: transform(df))我想實現(xiàn)兩件事:首先獲得轉(zhuǎn)換輸出: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")問題是如果我按順序調(diào)用,即Outputfile:CheckerOutputfile = 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")它將讀取整個文件兩次(對于每個計算)有沒有辦法讓讀取結(jié)果只完成一次?還有什么辦法可以讓兩者都compute()按順序運行?(如果我分兩行運行它,從 dask 儀表板我可以看到它將運行第一行,清除 dasboard,然后運行第二行,而不是同時運行兩個)我無法運行.compute()結(jié)果文件,因為我的 ram 不能包含它,結(jié)果數(shù)據(jù)框太大。與原始數(shù)據(jù)相比,檢查器和輸出文件都小得多。
1 回答

慕容3067478
TA貢獻1773條經(jīng)驗 獲得超3個贊
您可以dask.compute
在多個 Dask 集合上調(diào)用該函數(shù)
a, b = dask.compute(a, b)
https://docs.dask.org/en/latest/api.html#dask.compute
將來,我建議制作一個MCVE
添加回答
舉報
0/150
提交
取消