我有一个数据框,由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数据帧保存为parquet文件是否可行?
dask和fastparquet保存大型数据帧需要这么长时间是正常的吗?
有没有一种方法可以估计保存parquet文件所需的时间?