Как прочитать один файл паркета в S3 в pandas dataframe, используя boto3? - PullRequest
0 голосов
/ 25 июня 2018

Я пытаюсь прочитать один файл паркета, хранящийся в корзине S3, и преобразовать его в кадр данных pandas, используя boto3.

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Информация об использовании PyArrow для чтения файла Parquet из корзины S3 в кадр данных Pandas приведена здесь: https://arrow.apache.org/docs/python/parquet.html

import pyarrow.parquet as pq
import s3fs

dataset = pq.ParquetDataset('s3://<s3_path_to_folder_or_file>', 
filesystem=s3fs.S3FileSystem(), filters=[('colA', '=', 'some_value'), ('colB', '>=', some_number)])
table = dataset.read()
df = table.to_pandas()

Я предпочитаю этот способ чтения Parquet из S3, потому что он поощряет использование разделов Parquet через параметр filter , но есть ошибка, влияющая на этот подход https://issues.apache.org/jira/browse/ARROW-2038.

0 голосов
/ 25 июня 2018

Найден способ простого чтения файла паркета в dataframe с использованием пакета boto3.

import boto3
import io
import pandas as pd

# Read the parquet file
buffer = io.BytesIO()
s3 = boto3.resource('s3')
object = s3.Object('my-bucket-name','path/to/parquet/file')
object.download_fileobj(buffer)
df = pd.read_parquet(buffer)

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