Как мне прочитать разделенные файлы паркета из s3, используя pyarrow? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь прочитать каталог секционированного паркета, хранящийся в корзине s3.

Ради этого вопроса давайте назовем ведро bucket. У корзины есть одна папка, в которой есть последующие разделы в зависимости от года / месяца / дня / часа.

Итак, если нужно получить файл .parquet, URL будет:

s3://bucket/folder/year/month/day/hour

Я пытался прочитать это так же, как и для любого другого файла для паркета. Я работал с ними недавно. Однако до сих пор я не пробовал читать секционированный файл.

Я включил мой пример кода ниже:

import s3fs
import pandas as pd
import boto3

# Creating an S3 Filesystem (Only required when using S3)

s3 = s3fs.S3FileSystem()
s3_path = "s3://bucket"
directory = 'folder'

# Loading Files (S3)

data = pq.ParquetDataset(f'{s3_path}/{directory}', filesystem = s3).read_pandas().to_pandas()

Это поток, который я использовал, и я знаю, что он работает для общих файлов паркета. Теперь я получаю следующую ошибку:

ValueError: Directory name did not appear to be a partition: 2019

Я уже пытался погрузиться в 2019, поскольку полагал, что первый уровень имеет только 2019 в качестве папки, поэтому он может подумать, что это подкаталог, а не раздел.

Путь тогда выглядел как s3://bucket/folder/2019

Однако, это дало мне следующую ошибку, аналогично:

ValueError: Directory name did not appear to be a partition: 05

Я также пытался использовать fastparquet, следуя подходу из этого вопроса: Как читать разделенные файлы паркета из S3, используя pyarrow в python

Это тоже не сработало. Если я попытался распечатать список файлов, используя all_paths_from_s3 из ответа на вопрос, приведенный выше, это дало мне пустой список [].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...