如果我已经有了架构文件,例如:schema.json。如何使用 google-cloud-python API 加载文件以创建表或作业模式?
问问题
2081 次
3 回答
3
你可以试试这个解决方案:
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)
于 2020-09-06T18:04:51.043 回答
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
于 2018-01-18T00:43:37.290 回答
-1
如果有人在 3 年后发现这个问题,现在可以在此处找到的云 shell 中完成: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
于 2019-04-18T15:26:43.310 回答