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

Python3.7下用Polars读取S3 Parquet文件报TypeError求助

解决Python3.7下Polars读取S3 Parquet文件的报错问题

问题分析

你的代码在Python3.9正常运行,但Python3.7里报错,根源是旧版s3fs/aiobotocore不支持直接将AWS凭证参数作为顶层键传给AioSession。Python3.9环境用的是较新的库版本,支持直接传递aws_access_key_id这类参数,但Python3.7对应的库版本要求凭证参数必须嵌套在client_kwargs里。

修复方案

修改storage_options的结构,把AWS凭证放到client_kwargs字典中,代码如下:

import polars as pl
storage_options = {
    "client_kwargs": {
        "aws_access_key_id": access_key,
        "aws_secret_access_key": secret_key,
        "aws_session_token": token
    }
}

lazyframe = pl.scan_parquet(read_path, storage_options=storage_options)

为什么这样改?

在Python3.7对应的旧版s3fs实现中,创建AioSession时不会直接处理顶层的AWS凭证参数,而是要求把这些参数传递给boto3客户端的配置项(也就是client_kwargs),这样s3fs才能正确把凭证传给底层的aiobotocore会话,避免触发参数不匹配的TypeError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:19:56