Python BigQuery库报pyarrow无decimal256属性错误该如何解决
错误根因
该报错是google-cloud-bigquery版本与pyarrow版本不兼容导致的:pyarrow的decimal256类型是14.0.0及以上版本才新增的特性,而较新版本的google-cloud-bigquery(3.10.0+)需要调用该特性实现BigQuery的BIGNUMERIC类型适配,当环境中pyarrow版本低于14.0.0时就会触发该属性不存在的错误。
排查步骤
- 执行以下命令查看当前pyarrow版本,确认是否低于14.0.0
pip show pyarrow
- 执行以下命令查看当前google-cloud-bigquery版本,确认是否为3.10.0及以上版本
pip show google-cloud-bigquery
解决方案
根据你的环境约束二选一即可:
- 可升级pyarrow的场景:直接将pyarrow升级到14.0.0及以上版本
pip install --upgrade "pyarrow>=14.0.0"
如果是conda环境,使用对应命令:
conda update "pyarrow>=14.0.0"
- 不能升级pyarrow的场景(存在其他依赖限制pyarrow版本):将google-cloud-bigquery降级到无该依赖的3.9.0版本
pip install "google-cloud-bigquery==3.9.0"
验证修复
执行以下命令,无报错即为修复成功:
python -c "import google.cloud.bigquery"
如果是托管运行环境(如Cloud Composer、Dataproc等),需要在集群/环境的依赖配置中调整对应组件版本,避免手动修改依赖引发全局冲突。
内容的提问来源于stack exchange,提问作者Guilherme Cesar
相关产品推荐
相关产品推荐

