[英]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)
您需要檢查兩件事:
get_client
方法中的readonly
參數設置為False
。 否則,BigQuery訪問權限是只讀的。
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.