如果我已经有了模式文件,例如: schema.json。如何使用google-cloud-python API加载文件以创建表或作业模式?
发布于 2020-09-07 02:04:51
您可以尝试此解决方案:
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)发布于 2018-01-18 08:43:37
我认为这目前是不可能的。这就是为什么当我想要加载包含许多不同列的复杂JSON文件时,我倾向于使用bq。
如下所示:
bq load --source_format=NEWLINE_DELIMITED_JSON \ [PROJECT_ID]:[DATASET].[TABLE] gs://[BUCKET]/[FILENAME].json \ [PATH TO SCHEMA FOLDER]/schema.json
发布于 2019-04-18 23:26:43
如果有人在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
https://stackoverflow.com/questions/40852497
复制相似问题