我正在尝试将文件从GCS加载到BigQuery,该文件的架构是根据GCS中的文件自动生成的。我正在使用Apache Airflow来做同样的事情,我遇到的问题是,当我使用文件中的自动检测模式时,BigQuery会基于约100个初始值创建模式。
例如,在我的情况下,有一个列X
,X
中的值大部分为Integer
类型,但有些值为{{1} }类型,因此String
会因架构不匹配而失败,在这种情况下,我们需要将数据类型更改为bq load
。
所以我能做的是通过自己生成模式来手动创建新表。或者我可以将STRING
的值设置为某个max_bad_record
,但这似乎不是一个好的解决方案。理想的解决方案是这样的:
50
中成功创建的,并且没有任何数据不匹配,那么我就不需要做任何事情。答案 0 :(得分:1)
由于您无法更改bq中的列类型(请参见此link)
BigQuery本机支持以下架构修改:
BigQuery本机支持以下架构修改:
*将列添加到架构定义
*将列的模式从REQUIRED放到NULLABLE不支持所有其他架构修改,并且需要手动解决方法
因此,我建议:
--max_rows_per_request = 1
这将创建具有正确架构和1行的表,然后您可以从中加载其余数据。