加载模式 json 文件以创建表或作业模式 [关闭]

Posted

技术标签:

【中文标题】加载模式 json 文件以创建表或作业模式 [关闭]【英文标题】:Load schema json file to create table or job schema [closed] 【发布时间】:2016-11-28 20:00:53 【问题描述】:

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

【问题讨论】:

【参考方案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)

【讨论】:

不幸的是,这不适用于具有嵌套 RECORD 类型字段的架构。 ***.com/questions/67458605/…【参考方案2】:

我认为目前这是不可能的。这就是为什么当我想加载具有许多不同列的复杂 JSON 文件时,我倾向于使用 bq cli。

类似这样的:

bq load --source_format=NEWLINE_DELIMITED_JSON \ [PROJECT_ID]:[DATASET].[TABLE] gs://[BUCKET]/[FILENAME].json \ [PATH TO SCHEMA FOLDER]/schema.json

【讨论】:

【参考方案3】:

如果有人在 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

【讨论】:

以上是关于加载模式 json 文件以创建表或作业模式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

加载多个文件并且缺少一个文件时,PySpark 作业失败 [重复]

SSIS - OLE DB 目标 - 表或视图加载与快速加载

作业19-夜间模式的开启与关闭,父模板的制作

如何使用 sql 查询以行存储模式在 snappydata 表中加载 JSON 数据?

用于验证 json 模式的 jmeter 断言 [关闭]

将 JSON 数据加载到 Bootstrap 模式中