現(xiàn)在,我正在使用Dask讀取大型csv文件,并對其進行一些后處理(例如,進行一些數(shù)學運算,然后通過一些ML模型進行預測并將結(jié)果寫入數(shù)據(jù)庫)。避免加載內(nèi)存中的所有數(shù)據(jù),我想按當前大小的塊讀取:讀取第一個塊,預測,寫入,讀取第二個塊等。我嘗試了下一個解決方案,使用和:skiprowsnrowsimport dask.dataframe as ddread_path = "medium.csv"# Read by chunkskiprows = 100000nrows = 50000res_df = dd.read_csv(read_path, skiprows=skiprows)res_df = res_df.head(nrows)print(res_df.shape)print(res_df.head())但是我得到錯誤:值錯誤:樣本不夠大,無法包含至少一行數(shù)據(jù)。請在調(diào)用中增加字節(jié)數(shù)sampleread_csv/read_table另外,據(jù)我所知,它將每次([False,F(xiàn)alse,...,True,...])計算二進制掩碼,以查找要加載的行的所有數(shù)據(jù)。我們怎樣才能更有效率地做到這一點?也許使用dask中的一些分布式或延遲函數(shù)?
使用 Dask 按部分高效讀取大型 csv 文件
幕布斯7119047
2022-09-06 18:04:59