참고.
How to import a text file on AWS S3 into pandas without writing to disk
import pandas as pd
import boto3
import io
s3_client = boto3.client(service_name="s3",
aws_access_key_id="AWS_ACCESS_KEY",
aws_secret_access_key="AWS_SECRET_KEY")
obj = s3_client.get_object(Bucket="bucket_name", Key="example.csv")
df = pd.read_csv(io.BytesIO(obj["Body"].read()))
s3에 있는 파일을 읽어오기 위해서는 boto3모듈을 사용한다. 이때 가져온 데이터는 StreamingBody 타입이다. 때문에 이것을 io.BytesIO 함수를 통해서 바이트 단위로 읽어온다.
io.BytesIO는 open과 다르게 디스크에 저장없이 메모리에 올라간다. 따라서 해당 데이터를 pandas.read_csv를 통해서 읽을 수 있다.