Как я могу прочитать сжатый паркетный файл из S3 в Python, используя Boto3? - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть файл с именем data.parquet.gzip на моей корзине S3. Я не могу понять, в чем проблема, читая это. Обычно я работал с StringIO, но я не знаю, как это исправить. Я хочу импортировать его из S3 в мой сеанс ноутбука Python jupyter, используя pandas и boto3.

1 Ответ

1 голос
/ 17 апреля 2019

Решение на самом деле довольно простое.

import boto3 # For read+push to S3 bucket
import pandas as pd # Reading parquets
from io import BytesIO # Converting bytes to bytes input file
import pyarrow # Fast reading of parquets

# Set up your S3 client
# Ideally your Access Key and Secret Access Key are stored in a file already
# So you don't have to specify these parameters explicitly.
s3 = boto3.client('s3',
                  aws_access_key_id=ACCESS_KEY_HERE,
                  aws_secret_access_key=SECRET_ACCESS_KEY_HERE)

# Get the path to the file
s3_response_object = s3.get_object(Bucket=BUCKET_NAME_HERE, Key=KEY_TO_GZIPPED_PARQUET_HERE)

# Read your file, i.e. convert it from a stream to bytes using .read()
df = s3_response_object['Body'].read()

# Read your file using BytesIO
df = pd.read_parquet(BytesIO(df))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...