为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

犯罪嫌疑人X 2021-11-30 10:38:53
您好,我克隆了以下存储库: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>>> 我对这个问题没有任何想法,我真的很沮丧,因为我只是想创建一张表,所以我真的很感谢支持来克服这个任务。
查看完整描述

1 回答

?
MM们

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 官方文档中的大量代码示例。


查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信