pyarrow.lib.ArrowIOError: Неверный размер файла паркета составляет 0 байт - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь сделать что-то вроде 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  

1 Ответ

1 голос
/ 31 октября 2019

Я думаю, что ответ как-то связан с этим, из документов Apache Arrow :

Класс ParquetDataset принимает либо имя каталога, либо список, либо пути к файлам,и может обнаруживать и выводить некоторые общие структуры разделов, например, созданные Hive:

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

Так что я думаю, что автоматическое обнаружение имен файлов работает, только если файлы, которые вы пытаетесь достатьразделены, например, Hive.

...