【发布时间】:2016-08-19 08:17:12
【问题描述】:
背景
我正在将文件从本地机器加载到 BigQuery。每个文件都有可变数量的字段。所以,我在运行加载作业时使用 'autodetect=true'。
问题是,当第一次运行加载作业并且目标表不存在时,Bigquery 通过推断我们文件中存在的字段来创建表,这将成为新表的架构.
现在,当我使用不同的文件运行加载作业时,该文件包含一些额外的(例如:“中间名”:“xyz”)字段,bigQuery 抛出错误说“字段不存在在表中")
从这个帖子::BigQuery : add new column to existing tables using python BQ API,我了解到可以动态添加列。但是我不明白的是,
查询
我的程序将如何知道,正在上传的文件包含额外的字段并且会发生架构不匹配。(不是问题,如果表不存在 bcoz。将创建新表)。
如果我的程序能够以某种方式推断正在上传的文件中存在的额外字段,我可以将这些列添加到现有表中,然后运行加载作业。
我正在使用 python BQ API。
有关如何自动化此过程的任何想法都会有所帮助。
【问题讨论】:
标签: python google-bigquery google-cloud-platform