You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS SageMaker Notebook中优雅加载S3数据至Pandas DataFrame?

在SageMaker Notebook中优雅加载S3数据到Pandas DataFrame

嘿,刚上手SageMaker的话,确实有比直接写boto代码更优雅的实现方式,而且都是SageMaker生态里的工具,能帮你省不少冗余操作~下面给你两种常用的简洁方法:

方法1:用SageMaker Python SDK的S3Downloader

SageMaker SDK自带的S3Downloader已经封装了S3文件的下载逻辑,不用手动初始化boto客户端,还能自动利用Notebook的IAM角色权限:

首先确认SDK已安装(Notebook实例一般默认预装,没有的话执行!pip install sagemaker),然后代码示例:

import sagemaker
import pandas as pd
from sagemaker.s3 import S3Downloader

# 初始化SageMaker会话,自动关联当前Notebook的IAM权限
sess = sagemaker.Session()

# 你的S3数据文件路径,格式为s3://bucket-name/file-path
s3_data_path = "s3://your-bucket-name/path/to/your/data.csv"

# 下载文件到本地临时目录(会返回本地文件路径)
local_file_path = S3Downloader.download(s3_data_path, "./temp_data")

# 读取到Pandas DataFrame
df = pd.read_csv(local_file_path)

方法2:直接让Pandas读取S3路径(强烈推荐!)

这是最优雅的方式——只要你的Notebook角色有S3读权限,再配合s3fs库,Pandas可以直接识别s3://格式的路径,完全跳过手动下载步骤:

先确保s3fs已安装(没装的话执行!pip install s3fs),然后一行代码搞定:

import pandas as pd

# 直接用S3路径读取,Pandas会自动通过s3fs处理S3访问
df = pd.read_csv("s3://your-bucket-name/path/to/your/data.csv")

额外小贴士:

  • 除了CSV,这种方法也支持Parquet、JSON等Pandas支持的格式,比如pd.read_parquet("s3://your-bucket/path/to/data.parquet")
  • 如果是超大文件,可以用分块读取避免内存溢出:df_chunks = pd.read_csv(s3_data_path, chunksize=10000),然后遍历处理每个chunk
  • 确保你的SageMaker Notebook实例的IAM角色已经配置了对应S3存储桶的s3:GetObject权限,不然会报访问错误

内容的提问来源于stack exchange,提问作者A555h55

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:12:17