pandas.read_gbq设置BigQuery地理区域失败的解决方法
解决pandas.read_gbq设置BigQuery地理区域不生效的问题
我之前也踩过这个坑!pandas.read_gbq的参数逻辑和google.cloud.bigquery.Client.query确实不一样,你用jobReference参数是找错地方啦,下面给你两种可行的解决方案:
方案1:直接使用location参数(推荐)
从pandas 0.24.0版本开始,read_gbq已经支持直接传入location参数,不需要嵌套在任何字典里,用法和你用原生客户端的方式更接近:
dat = pd.read_gbq(query, project_id=id, location='asia-northeast1', dialect='standard')
这种方式最简洁,也是官方现在推荐的用法。
方案2:旧版本pandas用configuration参数嵌套设置
如果你的pandas版本比较旧(低于0.24.0),可以通过configuration参数来指定区域,需要把location放在query子配置里:
dat = pd.read_gbq( query, project_id=id, configuration={"query": {"location": "asia-northeast1"}}, dialect='standard' )
这里要注意,jobReference是用来引用已存在的BigQuery作业的,不是用来配置新作业运行区域的,所以之前的写法不会生效。
验证方法:你可以去BigQuery控制台的「作业历史」里查看这个查询作业的运行区域,确认是否已经切换到asia-northeast1了。
内容的提问来源于stack exchange,提问作者DUWUDA
相关产品推荐
相关产品推荐

