我正在尝试从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分钟。这应该是那样的吗?如果是,那么有没有更快的方法来做同样的事情。如果不是,那么可能导致问题的建议是什么?
谢谢!
答案 0 :(得分:3)
基于类似问题的this answer,您可能想要考虑您正在阅读的存储区域,与您从中读取存储区的位置相比较。可能是一个简单的更改(假设您可以控制存储桶位置),这可以大大提高性能。