python – BigQuerySink的bigquery.TableSchema的JSON表模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – BigQuerySink的bigquery.TableSchema的JSON表模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1777字,纯文字阅读大概需要3分钟。
内容图文
我有一个以JSON格式定义的非平凡的表模式(涉及嵌套和重复的字段)(具有名称,类型,模式属性)并存储在文件中.它已成功用于使用bq load命令填充bigquery表.
但是当我尝试使用Dataflow Python SDK和BigQuerySink做同样的事情时,schema参数需要是逗号分隔的’name’列表:’type’元素或bigquery.TableSchema对象.
有没有方便的方法将我的JSON模式提供给bigquery.TableSchema,还是我必须将其转换为名称:值列表?
解决方法:
目前,您无法直接指定JSON架构.您必须将模式指定为包含以逗号分隔的字段列表的字符串或bigquery.TableSchema对象.
如果架构很复杂并且包含嵌套和/或重复的字段,我们建议构建一个bigquery.TableSchema对象.
这是一个带有嵌套和重复字段的bigquery.TableSchema对象示例.
from apitools.clients import bigquery
table_schema = bigquery.TableSchema()
# ‘string’ field
field_schema = bigquery.TableFieldSchema()
field_schema.name = 'fullName'
field_schema.type = 'string'
field_schema.mode = 'required'
table_schema.fields.append(field_schema)
# ‘integer’ field
field_schema = bigquery.TableFieldSchema()
field_schema.name = 'age'
field_schema.type = 'integer'
field_schema.mode = 'nullable'
table_schema.fields.append(field_schema)
# nested field
field_schema = bigquery.TableFieldSchema()
field_schema.name = 'phoneNumber'
field_schema.type = 'record'
field_schema.mode = 'nullable'
area_code = bigquery.TableFieldSchema()
area_code.name = 'areaCode'
area_code.type = 'integer'
area_code.mode = 'nullable'
field_schema.fields.append(area_code)
number = bigquery.TableFieldSchema()
number.name = 'number'
number.type = 'integer'
number.mode = 'nullable'
field_schema.fields.append(number)
table_schema.fields.append(field_schema)
# repeated field
field_schema = bigquery.TableFieldSchema()
field_schema.name = 'children'
field_schema.type = 'string'
field_schema.mode = 'repeated'
table_schema.fields.append(field_schema)
内容总结
以上是互联网集市为您收集整理的python – BigQuerySink的bigquery.TableSchema的JSON表模式全部内容,希望文章能够帮你解决python – BigQuerySink的bigquery.TableSchema的JSON表模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。