【问题标题】:connecting bigquery to an unintended project将 bigquery 连接到意外项目
【发布时间】:2017-06-26 22:12:43
【问题描述】:

我正在关注this instruction 编写python代码并将其连接到bigquery

通过使用

gcloud init 

我选择一个特定的帐户和项目

然后我运行这段代码:

from gcloud import bigquery
from gcloud.bigquery import job
from gcloud.bigquery.table import *

# Create a new Google BigQuery client using Google Cloud Platform project
# defaults.
bq = bigquery.Client()

但它似乎连接到了错误的项目。怎么可能?有没有人有任何经验?这是错误。

Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 “C:\Python36-32\lib\site-packages\gcloud\bigquery\dataset.py”,行 423,在创建 method='POST', path=path, data=self._build_resource()) 文件“C:\Python36-32\lib\site-packages\gcloud\connection.py”,第 347 行,在 api_request error_info=method + ' ' + url) gcloud.exceptions.Forbidden: 403 此项目尚未启用计费。启用计费 https://console.cloud.google.com/billing。 (邮政 https://www.googleapis.com/bigquery/v2/projects/decisive-octane-142800/datasets)

我加粗的项目属于我的另一个帐户。

【问题讨论】:

    标签: python google-bigquery gcloud


    【解决方案1】:

    gcloud init 中选择的项目仅适用于 gcloud cli 工具,不适用于 python gcloud 库。事实上,这两者是不相关的(他们有相同的名字)。

    您提供链接的说明并未要求您使用gcloud init

    您可以使用 gcloud 来管理您的凭据,如 here 所述。

    所以,而不是

    bq = bigquery.Client()
    

    你应该明确指定项目

    bq = bigquery.Client(project=YOUR_PROJECT_ID)
    

    也可以通过其他方式指定它,因为这是由 code 推断的,但最好是明确的,因为此代码做出的假设不能保证总是正确的。

    【讨论】:

    • 感谢您提供的信息。我用我的项目名称和项目 ID 尝试了bq = bigquery.Client(project=YOUR_PROJEC_NAME)。他们都没有工作。我收到“无效语法”错误。你知道我错过了什么吗?
    • 好像你有 python 语法问题。我假设你有类似 bq = bigquery.Client(project='my-project-id') 的东西,带有正确的引号等......是的,你应该使用项目 ID(而不是名称或编号)。
    猜你喜欢
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多