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

能否使用Polars从AWS Athena读取SQL?此前用Pandas实现该操作

使用Polars从AWS Athena读取数据的可行方案

当然可行,Polars虽然官方指南没有单独列出Athena的支持,但它的数据库读取接口基于通用的DBAPI或SQLAlchemy标准,只要能建立Athena的数据库连接,就能直接读取数据。以下是几种常用实现方式:

方法1:Polars + pyathena直接读取

pyathena是AWS Athena的Python DBAPI驱动,可直接与Polars的read_database配合使用:

  1. 先安装依赖:
pip install polars pyathena
  1. 示例代码:
import polars as pl
from pyathena import connect

# 建立Athena连接,替换为你的配置
conn = connect(
    s3_staging_dir="s3://your-staging-bucket/athena-results/",
    region_name="us-east-1"
)

# 执行SQL并读取为Polars DataFrame
SQL_STATEMENT = "SELECT * FROM your_table LIMIT 100"
df = pl.read_database(SQL_STATEMENT, conn)

也可以通过SQLAlchemy引擎连接:

from sqlalchemy import create_engine

engine = create_engine(
    "awsathena+rest://:@athena.us-east-1.amazonaws.com:443/your-database"
    "?s3_staging_dir=s3://your-staging-bucket/athena-results/"
)

df = pl.read_database(SQL_STATEMENT, engine)

方法2:Pandas兼容转换

如果你已经有可用的Pandas连接代码,可先读取为Pandas DataFrame再转成Polars,这种方式最省心:

import polars as pl
import pandas as pd

# 复用你已有的Pandas连接逻辑
pd_df = pd.read_sql(SQL_STATEMENT, conn)
# 转换为Polars DataFrame
pl_df = pl.from_pandas(pd_df)

方法3:AWS Wrangler集成读取

AWS Wrangler(awswrangler)对Athena有深度优化,支持直接返回Polars DataFrame(3.0+版本):

  1. 安装依赖:
pip install polars awswrangler
  1. 示例代码:
import awswrangler as wr
import polars as pl

# 直接读取为Polars DataFrame
df = wr.athena.read_sql_query(
    SQL_STATEMENT,
    database="your-database",
    dtype_backend="polars"
)

这种方式适合处理大规模数据,自动处理分区、数据类型映射等细节,性能更优。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 10:27:52