我能做些什么來防止同一個(gè)文件被讀取兩次以上?對于背景,我有以下詳細(xì)信息我試圖讀取文件夾中的文件列表,對其進(jìn)行轉(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ù)進(jìn)行一些轉(zhuǎn)換:def transform(df): # do something to df return dftransformation_result = read_result_dd.map_partitions(lambda df: transform(df))我想實(shí)現(xiàn)兩件事:首先獲得轉(zhuǎn)換輸出:Outputfile = transformation_result.compute()Outputfile.to_csv("path and param here")第二個(gè)得到比較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")它將讀取整個(gè)文件兩次(對于每個(gè)計(jì)算)有沒有辦法讓讀取結(jié)果只完成一次?還有什么辦法可以讓兩者都compute()按順序運(yùn)行?(如果我分兩行運(yùn)行它,從 dask 儀表板我可以看到它將運(yùn)行第一行,清除 dasboard,然后運(yùn)行第二行,而不是同時(shí)運(yùn)行兩個(gè))我無法運(yùn)行.compute()結(jié)果文件,因?yàn)槲业?ram 不能包含它,結(jié)果數(shù)據(jù)框太大。與原始數(shù)據(jù)相比,檢查器和輸出文件都小得多。
使用 Dask 防止多次讀取數(shù)據(jù)
繁華開滿天機(jī)
2022-06-14 16:45:36