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

如何在Polars中无需GCP服务账户JSON读取GCS上的Parquet文件

解决Polars读取GCS Parquet时无需服务账户JSON的问题

确认Polars依赖与版本

  • 确保安装包含GCP支持的Polars包:pip install polars[gcp],部分环境下缺失GCS相关依赖会导致凭据逻辑失效。
  • 确认使用Polars 1.10.0及以上版本,该版本才引入credential_provider参数。

正确配置credential_provider参数

调用read_parquet或scan_parquet时,显式指定credential_provider="google_default",让Polars使用GCP的默认凭据链,无需指定JSON文件:

import polars as pl

# 读取Parquet文件
df = pl.read_parquet("gs://your-bucket/path/file.parquet", credential_provider="google_default")
# 或懒加载模式
lf = pl.scan_parquet("gs://your-bucket/path/file.parquet", credential_provider="google_default")

默认凭据链会自动按优先级尝试以下身份验证方式:

  • 本地用户凭据(通过gcloud auth application-default login生成)
  • GCP服务元数据服务器(如果在GCE/GKE/Cloud Run等GCP托管环境运行)
  • 工作负载身份(如果在K8s集群中配置了对应权限)
  • 环境变量GOOGLE_APPLICATION_CREDENTIALS(可选,无需设置即可用其他方式)

适配公司环境的身份验证配置

  • 若在GCP托管环境中运行,直接给实例绑定拥有GCS读取权限的服务账户,Polars会自动通过元数据服务器获取凭据,无需额外配置。
  • 本地开发时,执行gcloud auth application-default login,用公司授权的邮箱登录后生成临时凭据,Polars会自动读取该凭据,无需JSON文件。

排查常见问题

  • 若仍报错,检查是否误设置GOOGLE_APPLICATION_CREDENTIALS指向不存在的文件,需清空该环境变量。
  • 确认服务账户(或登录邮箱)拥有GCS存储桶的storage.objects.get权限,权限不足可能会被混淆为“找不到JSON文件”的错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:30:57