pyarrow.lib.ArrowIOError:无效的Parquet文件大小为0字节

问题描述 投票:0回答:1

我正在尝试执行类似this的操作,将S3存储桶中的文件列表读取到pyarrow表中。

如果我指定文件名,我可以做:

from pyarrow.parquet import ParquetDataset
import s3fs
dataset = ParquetDataset(
    "s3://path/to/file/myfile.snappy.parquet,
    filesystem=s3fs.S3FileSystem(),
)

并且一切正常。但是,如果我这样做:

dataset = ParquetDataset(
    "s3://path/to/file,
    filesystem=s3fs.S3FileSystem(),
)

我得到:

pyarrow/_parquet.pyx:1036: in pyarrow._parquet.ParquetReader.open                                                                                                                                                                                                              
pyarrow.lib.ArrowIOError: Invalid Parquet file size is 0 bytes  
python boto3 pyarrow
1个回答
0
投票

我认为答案与Apache Arrow docs中的问题有关:

ParquetDataset类接受目录名称或列表或文件路径,并且可以发现和推断一些常见的分区结构,例如由Hive产生的分区结构:

dataset = pq.ParquetDataset('dataset_name/')
table = dataset.read()

因此,我认为只有在您试图保留文件的位置被例如蜂巢。

© www.soinside.com 2019 - 2024. All rights reserved.