Categories
程式開發

如何使用Pandas處理超過內存容量的大規模數據?


處理大規模數據集時常是棘手的事情,尤其在內存無法完全加載數據的情況下。在資源受限的情況下,可以使用Python Pandas提供的一些功能,降低加載數據集的內存佔用。可用技術包括壓縮、索引和數據分塊。

開展數據科學項目中的一個重要步驟,就是從API下載數據並加載到本地內存,之後才能處理數據。

在上述過程中需要解決一些問題,其中之一就是數據量過大。如果數據量超出本機內存的容量,項目執行就會產生問題。

對此有哪些解決方案?

有多種解決數據量過大問題的方法。它們或是消耗時間,或是需要增加投資。

可能的解決方案

  1. 投資解決:新購有能力處理整個數據集,具有更強CPU和更大內存的計算機。或是去租用雲服務或虛擬內存,創建處理工作負載的集群。

  2. 耗時解決:如果內存不足以處理整個數據集,而硬盤的容量要遠大於內存,此時可考慮使用硬盤存儲數據。但使用硬盤管理數據會大大降低處理性能,即便是SSD也要比內存慢很多。

只要資源允許,這兩種解決方法均可行。如果項目資金充裕,或是不惜任何時間代價,那麼上述兩種方法是最簡單也是最直接的解決方案。

但如果情況並非如此呢?也許你的資金有限,或是數據集過大,從磁盤加載將增加5~6倍甚至更多的處理時間。是否有無需額外資金投入或時間開銷的大數據解決方案呢?

原文鏈接:【https://www.infoq.cn/article/QqcwQlIUgJ33AEhOaQJq】。未經作者許可,禁止轉載。