[Python] S3에 있는 CSV 파일을 pandas로 disk 저장없이 바로 읽어오기

오도원공육사·2021년 10월 13일

파이썬

목록 보기
7/11

참고.

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

profile
잘 먹고 잘살기

0개의 댓글