aws

aws-sdk-pandas

AWS SDK for pandas(awswrangler)是 AWS 官方的 Python 库,把 pandas DataFrame 与 Athena、Redshift、S3、Glue、DynamoDB、Timestream 等 AWS 数据服务无缝打通,用几行代码完成数据湖读写与 ETL。

3.18.0
发布于
1 天前
4,124
星标
6,726
下载
同步于
9 小时前

最新版本

3.18.02026年10月28日 05:55
下载慢?可在上方随时切换镜像源

项目说明

项目概述

AWS SDK for pandas(包名 awswrangler)是 AWS 专业服务团队开源的 Python 库,定位是 pandas on AWS:把 DataFrame 与 AWS 各类数据服务直接连接起来。它为 S3(Parquet、CSV、JSON、Excel)、Athena、Redshift、Glue Catalog、Timestream、DynamoDB、OpenSearch、Neptune 等提供高层 API,读写数据库、落数据湖、跑 SQL 查询都只需一两行代码。借助 Modin 与 Ray 还能把同样的代码横向扩展到集群上运行。

项目 内容
语言 Python
平台 任何支持 Python 的环境(含 Lambda、Glue、EMR、SageMaker)
集成 S3、Athena、Redshift、Glue、Timestream、DynamoDB、OpenSearch、Neptune 等
许可 Apache-2.0

pandas 与 AWS 数据服务之间的官方高速通道。

主要功能

  • S3 数据湖读写:wr.s3.to_parquet / read_parquet 直接以数据集形式读写 S3,自动注册 Glue 表
  • Athena 查询:wr.athena.read_sql_query 执行 SQL 并把结果直接读回 DataFrame
  • Redshift 集成:从 Glue Catalog 获取连接,支持查询、COPY/UNLOAD 与 upsert 写入
  • 多数据库支持:MySQL、PostgreSQL、SQL Server、Oracle 的批量读写
  • Timestream 时序:DataFrame 与 Amazon Timestream 之间的写入与查询
  • DynamoDB 与 OpenSearch:键值数据与搜索集群的读写封装
  • 大规模执行:配合 Modin 与 Ray 把处理分布到多机集群
  • 类型完整:全库类型标注,mypy 检查通过,IDE 补全友好

适用人群

  • AWS 上的数据工程师
  • 用 pandas 做分析的数据科学家
  • 构建 ETL 管道的开发人员
  • 在 Lambda / Glue / EMR 上跑数据任务的团队

快速上手

  1. 安装:pip install awswrangler(可选模块如 Redshift 需 pip install 'awswrangler[redshift]')
  2. 配置 AWS 凭证后即可使用:
import awswrangler as wr
import pandas as pd

df = pd.DataFrame({'id': [1, 2], 'value': ['foo', 'boo']})

# 写入数据湖并注册 Glue 表
wr.s3.to_parquet(df=df, path='s3://bucket/dataset/', dataset=True,
                 database='my_db', table='my_table')

# 从 Athena 查询回 DataFrame
df = wr.athena.read_sql_query('SELECT * FROM my_table', database='my_db')
  1. 更多用法参见官方文档与仓库 tutorials 目录的系列 Notebook

核心优势

  • 代码量极少:原本需要几十行 boto3 的操作通常一两行搞定
  • AWS 官方出品:服务覆盖与版本兼容由 AWS 团队维护
  • 本地与云端一致:同一套 API 从 Notebook 到生产管道无缝迁移

系统要求

项目 要求
语言 Python
操作系统 Linux、macOS、Windows
依赖 AWS 凭证与对应服务权限

注意事项

  • 3.0 版本起可选模块需显式安装:如 awswrangler[redshift]、awswrangler[mysql],默认安装只含核心功能
  • 会产生 AWS 费用:Athena 扫描、S3 请求等按用量计费,查询前留意数据扫描量
  • Lambda 部署:官方提供 Lambda Layer,无需自行打包依赖

历史版本

排序