我有一个大数据集(大约1 TB的数据),分布在我要在S3上存储(压缩)的几个csv文件中。我在将压缩文件读入dask时遇到了问题,因为它们太大了,因此我的初始解决方案是将每个csv拆分为可管理的大小。然后以下列方式读取这些文件:
ddf = dd.read_csv('s3://bucket-name/*.xz', encoding = "ISO-8859-1",
compression='xz', blocksize=None, parse_dates=[6])
在我摄取完整数据集之前 - 这是正确的方法,还是有更好的方法来完成我需要的工作?
答案 0 :(得分:1)
这对我来说似乎很明智。
这里出现的唯一挑战是压缩。如果压缩格式不支持随机访问,则Dask无法将大文件分解为多个较小的块。对于支持随机访问的格式(如xz),但未针对该特定文件进行配置,情况也是如此。
在这种情况下,如上所述,手动将文件手动分解为许多小文件并使用blocksize=None
是一个很好的解决方案。