참고.
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
를 통해서 읽을 수 있다.