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

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

파이썬

목록 보기
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.BytesIOopen과 다르게 디스크에 저장없이 메모리에 올라간다. 따라서 해당 데이터를 pandas.read_csv를 통해서 읽을 수 있다.

profile
잘 먹고 잘살기

0개의 댓글