如果我已经拥有模式文件,例如:schema.json。如何使用google-cloud-python API加载文件以创建表或作业架构?
答案 0 :(得分:1)
您可以尝试以下解决方案:
import json
from google.cloud import bigquery
bigquerySchema = []
with open('schema.json') as f:
bigqueryColumns = json.load(f)
for col in bigqueryColumns:
bigquerySchema.append(bigquery.SchemaField(col['name'], col['type']))
bigqueryClient = bigquery.Client()
tableRef = "myproject.mydataset.mytable"
table = bigquery.Table(tableRef, schema=bigquerySchema)
table = bigqueryClient.create_table(table)
答案 1 :(得分:0)
我认为目前不可能。这就是为什么当我想加载包含许多不同列的复杂JSON文件时,我倾向于使用bq cli。
这样的事情:
bq load --source_format=NEWLINE_DELIMITED_JSON \
[PROJECT_ID]:[DATASET].[TABLE] gs://[BUCKET]/[FILENAME].json \
[PATH TO SCHEMA FOLDER]/schema.json
答案 2 :(得分:0)
万一3年后有人发现此问题,现在可以在https://console.cloud.google.com/cloudshell/
的云外壳中完成此操作如果您不习惯使用命令行来上传文件,则可以单击编辑器图标并通过拖放进行上传。
有关在命令行上上传JSON数据(包括模式文件)的Google Cloud Platform文档可在以下位置找到:https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-json#bigquery_load_table_gcs_json-cli