我有一个由 100,000 多行组成的数据框,每行有 100,000 列,总共有 10,000,000,000 个浮点值。
我之前已经设法在一个csv
(制表符分隔的)文件中读取它们,并且我成功地将它们读取到具有 250GB RAM 的 50 核 Xeon 机器中,并尝试将其作为.parq
目录写出:
浮点数huge.csv
保存为字符串,大小为 125GB。
import dask.dataframe as dd
filename = 'huge.csv'
df = dd.read_csv(filename, delimiter='\t', sample=500000000)
df.to_parquet('huge.parq')
它已经写了huge.parq
将近一个星期,目录是 14GB,看起来保存.to_parquet
过程不会很快停止。
并且free -mh
显示仍有可用内存,但保存.parq
目录的时间非常慢:
$ free -mh
total used free shared buff/cache available
Mem: 251G 98G 52G 10M 101G 152G
Swap: 238G 0B 238G
问题是:
鉴于数据框和机器的大小,将 dask 数据框保存到镶木地板文件是否可行?
保存巨大的数据帧是否正常
dask
并且fastparquet
需要这么长时间?有什么方法可以估计保存镶木地板文件所需的时间吗?