Python 有没有办法让dask read_csv忽略空文件?

Python 有没有办法让dask read_csv忽略空文件?,python,pandas,amazon-s3,dask,Python,Pandas,Amazon S3,Dask,我有一个每天有200k个文件的数据集,这些文件非常小.txt.gz,其中99%小于60KB。由于gzip压缩,其中一些文件是大小为20的空文件 当我尝试用dask加载整个目录时,我得到一个pandas.errors.EmptyDataError。由于我计划每天直接从S3加载这些文件,我想知道是否可以通过dd.read\u csv()忽略或跳过这些文件。我在dask和pandas的文档中没有找到任何控制错误处理的选项 当然,我可以将所有文件从s3复制到本地硬盘,并在加载到Dask之前扫描并删除所有

我有一个每天有200k个文件的数据集,这些文件非常小
.txt.gz
,其中99%小于60KB。由于gzip压缩,其中一些文件是大小为20的空文件

当我尝试用dask加载整个目录时,我得到一个
pandas.errors.EmptyDataError
。由于我计划每天直接从S3加载这些文件,我想知道是否可以通过
dd.read\u csv()
忽略或跳过这些文件。我在dask和pandas的文档中没有找到任何控制错误处理的选项

当然,我可以将所有文件从s3复制到本地硬盘,并在加载到Dask之前扫描并删除所有有问题的文件,但速度会慢一些(复制所有200k文件)


原则上,我只想将所有这些200k CSV文件加载到Dask中,以将它们转换为更少的拼花文件。因此,我甚至不确定Dask是否是实现这一点的最佳工具,但如果有一种简单的方法可以使其工作,我将通过异常实现这一点:

import pandas.io.common

for i in range(0,len(file_paths)):
   try:
      pd.read_csv(file_paths[i])
   except pandas.io.common.EmptyDataError:
      print file_paths[i], " is empty"

为什么您需要pandas/dask来实现操作系统工具的功能?我想这已经在OP中了,我不想将200k文件从S3复制到本地磁盘,因为这样做(并行)是非常重要的。正如我所说,它的速度也会变慢,但我不喜欢另一个复制文件和脚本的工具增加复杂性,若可以直接使用Dask的话,它可以消除这种特殊类型的错误。