加载架构json文件以创建表或作业架构

时间:2016-11-28 20:00:53

标签: python-2.7 google-bigquery google-cloud-python

如果我已经拥有模式文件,例如:schema.json。如何使用google-cloud-python API加载文件以创建表或作业架构?

3 个答案:

答案 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