簡體   English   中英

如何使用以下python bigquery api創建表?

[英]how to create a table using the following python bigquery api?

您好,我克隆了以下存儲庫:

https://github.com/tylertreat/BigQuery-Python

我正在閱讀有關創建表的文檔,如下所示:

schema = [
    {'name': 'foo', 'type': 'STRING', 'mode': 'nullable'},
    {'name': 'bar', 'type': 'FLOAT', 'mode': 'nullable'}
]
created = client.create_table('dataset', 'my_table', schema)

我嘗試在控制台中執行如下操作:

>>> schema = [
...     {'name': 'foo', 'type': 'STRING', 'mode': 'nullable'},
...     {'name': 'bar', 'type': 'FLOAT', 'mode': 'nullable'}
... ]
>>> created = client.create_table('data_set_course', 'my_table_testing', schema)

我只得到“假”,當我檢查可視界面時沒有表格。

>>> print(created)
False
>>> 

我對這個問題一無所知,我真的很沮喪,因為我只是要創建一個表,所以我真的很感謝能克服這一任務的支持。

我已經測試了這段代碼,它對我有用:

from bigquery import get_client

# JSON key provided by Google
json_key = 'key.json'

client = get_client(json_key_file=json_key, readonly=False)

schema = [
    {'name': 'foo', 'type': 'STRING', 'mode': 'nullable'},
    {'name': 'bar', 'type': 'FLOAT', 'mode': 'nullable'}
]
created = client.create_table(dataset='yourDataset', table='tableToCreate', schema=schema)

您需要檢查兩件事:

  1. get_client方法中的readonly參數設置為False 否則,BigQuery訪問權限是只讀的。

  2. key.json文件中提供的服務帳戶或用戶已被授予創建BigQuery表權限 至少它必須具有已授予的roles/bigquery.dataEditor角色。 為此,請運行以下命令:

gcloud projects add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com" --role "roles/bigquery.dataEditor"


無論如何,我建議您使用Google BigQuery的官方Python客戶端 ,您將獲得更好的文檔和功能。 以及BigQuery官方文檔中的大量代碼示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM