从AWS S3存储桶读取缓慢

时间:2018-05-01 10:28:34

标签: python-3.x amazon-s3 boto3 s3fs

我正在尝试从s3存储桶读取带有pandas的文件而不将文件下载到磁盘。我试过用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)`

问题是阅读文件需要很长时间。阅读38MB文件大约需要3分钟。这应该是那样的吗?如果是,那么有没有更快的方法来做同样的事情。如果不是,那么可能导致问题的建议是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

基于类似问题的this answer,您可能想要考虑您正在阅读的存储区域,与您从中读取存储区的位置相比较。可能是一个简单的更改(假设您可以控制存储桶位置),这可以大大提高性能。