无法使用 Python 连接到 BigQuery - ServiceUnavailable
Posted
技术标签:
【中文标题】无法使用 Python 连接到 BigQuery - ServiceUnavailable【英文标题】:Failed to connect to BigQuery with Python - ServiceUnavailable 【发布时间】:2020-08-05 15:49:51 【问题描述】:从 BigQuery 查询数据一直对我有用。然后我更新了我的谷歌包(例如 google-cloud-bigquery),突然我不能再下载数据了。不幸的是,我不再知道我正在使用的旧版本的软件包。现在,我使用的是 google-cloud-bigquery 版本“1.26.1”。
这是我正在运行的代码:
from google.cloud import bigquery
from google.oauth2 import service_account
import pandas as pd
KEY_FILE_LOCATION = "path_to_json"
PROCECT_ID = 'bigquery-123454'
credentials = service_account.Credentials.from_service_account_file(KEY_FILE_LOCATION)
client = bigquery.Client(credentials= credentials,project=PROCECT_ID)
query_job = client.query("""
SELECT
x,
y
FROM
`bigquery-123454.624526435.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20200501' AND '20200502'
""")
results = query_job.result()
df = results.to_dataframe()
除了最后一行df = results.to_dataframe()
,代码运行良好。现在我得到一个奇怪的错误,它由三个部分组成:
第 1 部分:
_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "failed to connect to all addresses"
debug_error_string = ""created":"@1596627109.629000000","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3948,"referenced_errors":["created":"@1596627109.629000000","description":"failed to connect to all addresses","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":394,"grpc_status":14]"
>
第 2 部分:
ServiceUnavailable: 503 failed to connect to all addresses
第 3 部分:
RetryError: Deadline of 600.0s exceeded while calling functools.partial(<function _wrap_unary_errors.<locals>.error_remapped_callable at 0x0000000010BD3C80>, table_reference
project_id: "bigquery-123454"
dataset_id: "_a0003e6c1ab4h23rfaf0d9cf49ac0e90083ca349e"
table_id: "anon2d0jth_f891_40f5_8c63_76e21ab5b6f5"
requested_streams: 1
read_options
format: ARROW
parent: "projects/bigquery-123454"
, metadata=[('x-goog-request-params', 'table_reference.project_id=bigquery-123454&table_reference.dataset_id=_a0003e6c1abanaw4egacf0d9cf49ac0e90083ca349e'), ('x-goog-api-client', 'gl-python/3.7.3 grpc/1.30.0 gax/1.22.0 gapic/1.0.0')]), last exception: 503 failed to connect to all addresses
我没有对此错误的解释。我认为这与我更新软件包无关。
一旦我遇到代理问题,但这些问题导致另一个/不同的错误。
我的同事说项目“bigquery-123454”在 BigQuery 中仍然可用。
有什么想法吗?
提前感谢您的帮助!
【问题讨论】:
【参考方案1】:出现网络问题时会出现 503 错误。一段时间后重试或重试作业。 您可以在 Google Cloud Page 上阅读更多有关该错误的信息
【讨论】:
【参考方案2】:我找到了答案:
将包“google-cloud-bigquery”从版本 1.26.1 降级到 1.18.1 后,代码再次运行!所以新包导致了错误。
我使用pip install google-cloud-bigquery==1.18.1 --force-reinstall
降级了软件包
【讨论】:
以上是关于无法使用 Python 连接到 BigQuery - ServiceUnavailable的主要内容,如果未能解决你的问题,请参考以下文章
导入 GoogleCredentials 以连接到 BigQuery