由于讀取時間很長,我目前正在使用鑲木地板檔案。但是現在我希望稍微改變我的程式的功能。檔案對于記憶體來說會變得太大,而我希望只讀取檔案的特定行。
每個檔案有大約 15GB 的資料(我將使用多個檔案),有數百列和數百萬行。如果我只想讀入例如第 x 行,對其進行操作,然后讀入新行(數百萬次),那么執行此操作的最有效檔案型別是什么?
我不太關心壓縮,因為記憶體是我的限制因素,而不是存盤。
在此先感謝您的專業知識!
uj5u.com熱心網友回復:
很可能你不會在處理你的日期時得到一切正確的。如果原始資料存盤為 CSV,不僅可以節省除錯時間,還可以使用 ie 將 CSV 轉換為 parquet:
- https://github.com/pola-rs/polars
- https://duckdb.org
uj5u.com熱心網友回復:
根據確切的要求,我會看:
- SQLite
- RocksDB(使用“行號”作為鍵)。
請注意,Rocks DB 將在單個目錄中生成多個檔案,而不是單個檔案。上次我查看 Rocks DB 不支持二級索引,因此除非您想重寫資料,否則您必須為 Key 做出任何選擇。RocksDB 專案沒有 python 系結,但在 github 上有一些浮動。
至少,對于初始加載,SQLLite 可能會很慢(我建議在初始加載后加載然后在“行號”上創建索引)。但它允許創建二級索引并通過這些索引合理有效地一次查找多行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/352895.html
