将bigquery连接到一个非预期的项目

时间:2017-02-09 03:14:06

标签: python google-bigquery gcloud

我跟随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()

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

  

回溯(最近一次呼叫最后一次):文件"",第1行,in      文件   " C:\ Python36-32 \ lib \ site-packages \ gcloud \ bigquery \ dataset.py",line   423,在创造中       method =' POST',path = path,data = self._build_resource())File" 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。 (POST   https://www.googleapis.com/bigquery/v2/projects/决定性辛烷-142800 /数据集)

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

1 个答案:

答案 0 :(得分:1)

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

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

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

所以,而不是

bq = bigquery.Client()

你应该明确指定项目

bq = bigquery.Client(project=YOUR_PROJECT_ID)

也可以通过其他方式指定它,因为这是由code推导的,但最好是明确的,因为这段代码会做出不能保证始终为真的假设。