BigQuery 中的 Heisenberg 错误“invalid_grant”?
Posted
技术标签:
【中文标题】BigQuery 中的 Heisenberg 错误“invalid_grant”?【英文标题】:Heisenberg bug `invalid_grant` in BigQuery? 【发布时间】:2018-09-27 11:27:51 【问题描述】:我使用多台计算机、笔记本电脑和服务器,用于在同一个帐户上运行 BigQuery。现在使用一台计算机,我收到了使用 Python pandas pd.read_gbq
运行 bigquery 脚本的错误,这样
import pandas as pd
pd.read_gbq(query='''select 1''', project_id=7777777, dialect='legacy')
invalid_grant: Bad Request', '\n "error" : "invalid_grant",\n "error_description" : "Bad Request
我用了几个星期,但没有其他人,因此称之为 Heisenberg 错误,不确定是否是由于我使用了许多计算机的问题造成的。
如何解决 BigQuery invalid_grant 错误? client_secrets.json
的python版本是否错误(我在本地找不到)?
【问题讨论】:
您使用的是服务帐号吗?即您如何进行身份验证.. @GrahamPolley 我怎样才能找到它?我做了gcloud auth login
,在 Anaconda 中还可以,但仍然出现错误。我添加了一个小示例,其中出现了 pandas 的错误,我尝试多次卸载 pandas 但没有帮助解决错误,pandas read_gbq 在哪里加载凭据?
【参考方案1】:
身份验证有多种方式,我在评论中提供了服务帐户的解决方案。
服务帐号
您可以创建服务帐户here,说明here。然后,将 read_gbq 与 private_key
参数一起使用,这样
import pandas as pd
from google.cloud import bigquery
client = bigquery.Client.from_service_account_json('BQ.json')
a=pd.read_gbq(query='select 1', project_id='', dialect='standard', private_key='BQ.json')
print(a)
在没有from google.cloud import bigquery
的情况下它最初无法工作,但在第一次成功连接后,它也开始在没有客户端的情况下工作。
【讨论】:
以上是关于BigQuery 中的 Heisenberg 错误“invalid_grant”?的主要内容,如果未能解决你的问题,请参考以下文章
提取操作中的 BigQuery 错误:错误处理作业意外。请再试一次