簡體   English   中英

為什么數據在磁盤和內存上的占用空間不同?

[英]why would data have different footprints for disk versus memory?

“我們在S3上有12個CSV文件的2015 Yellow Cab NYC出租車數據...該數據在磁盤上約為20GB,在RAM中約為60GB。”

我在嘗試dask (一種用於處理內存不足數據集的python框架)時遇到了這一發現。

有人可以向我解釋為什么會有3倍的差異嗎? id想像它與python對象有關,但不是100%肯定。

謝謝!

您正在從磁盤上的CSV讀取到內存中的結構化數據幀對象。 這兩件事根本不相似。 磁盤上的CSV數據是單個字符串。 內存中的數據是一個復雜的數據結構,具有多種數據類型,內部指針等。

CSV本身不占用任何RAM。 有一個復雜的數據結構正在占用RAM,並且它是使用磁盤上CSV來源的數據填充的。 這根本不是一回事。

為了說明差異,您可以嘗試將CS​​V讀取到實際的單個字符串變量中,並查看消耗了多少內存。 在這種情況下,它實際上是內存中的單個CSV字符串:

with open('data.csv', 'r') as csvFile:
    data=csvFile.read()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM