Медленное чтение из ведра AWS S3 - PullRequest
0 голосов
/ 01 мая 2018

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

import boto3

s3 = boto3.client('s3')
obj = s3.get_object(Bucket='bucket_name', Key="key")
read_file = io.BytesIO(obj['Body'].read())
pd.read_csv(read_file)

А также я попробовал s3fs как

import s3fs
import pandas as pd

fs = s3fs.S3FileSystem(anon=False)
with fs.open('bucket_name/path/to/file.csv', 'rb') as f:
    df = pd.read_csv(f)`

Проблема в том, что чтение файла занимает слишком много времени. Для чтения файла размером 38 МБ требуется около 3 минут. Это должно быть так? Если это так, то есть ли более быстрый способ сделать то же самое. Если это не так, какие-либо предложения, что может вызвать проблему?

Спасибо!

1 Ответ

0 голосов
/ 01 мая 2018

Исходя из этого ответа на похожую проблему, вы можете подумать, в каком регионе находится корзина, из которой вы читаете, по сравнению с тем, откуда вы читаете. Это может быть простое изменение (при условии, что у вас есть контроль над расположением блоков), которое может значительно улучшить производительность.

...