1 回答
TA贡献1886条经验 获得超2个赞
我已经测试了这段代码,它对我有用:
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)
你需要检查两件事:
readonlyget_client方法中的参数设置为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 官方文档中的大量代码示例。
添加回答
举报