在 dask / xarray 中处理大型时间序列的最佳方法是什么?



我有17,000个CSV文件,每个文件按时间戳排序(有些文件缺少数据)。总的CSV文件大约有85GB,比我的32GB内存大得多。

我正试图找出最好的方法来把这些变成一个时间对齐的,内存不足的数据结构,这样我就可以计算像PCA这样的东西。

正确的方法是什么?

(我试图设置一个xarray.DataSet,与dim=(filename, time),然后我试图xr.merge()上的每个CSV文件到数据集,但它变得越来越慢,每次插入,我预计它会崩溃,当RAM用完。)

您试过dd.read_csv(...)了吗?

Dask以惰性方式读取csv,并且可以以流式方式执行某些操作,因此您可以在大于内存的数据集上运行分析。

确保Dask能够在读取数据时正确设置分区。一旦数据被读取,检查dd.divisions并确保它们是值。

当然,你也可以使用Dask集群来访问更多的内存。

这些文件非常小,Dask通常在100MB左右的分区上工作得最好。你可能想要压缩你的数据。

相关内容

  • 没有找到相关文章

最新更新