<p>您需要指定表模式,其中显式指定<code>win_margin</code>列的类型。您可以通过设置<code>job_config.schema</code>字段并将<code>job_config.autodetect</code>设置为<code>False</code>来完成。在</p>
<p>以下是可用于从文件中读取架构的函数:</p>
<pre><code>def read_bigquery_schema_from_file(filepath):
file_content = open(filepath).read()
json_content = json.loads(file_content)
return read_bigquery_schema_from_json_recursive(json_content)
def read_bigquery_schema_from_json_recursive(json_schema):
"""
CAUTION: Recursive function
This method can generate BQ schemas for nested records
"""
result = []
for field in json_schema:
if field.get('type').lower() == 'record' and field.get('fields'):
schema = SchemaField(
name=field.get('name'),
field_type=field.get('type', 'STRING'),
mode=field.get('mode', 'NULLABLE'),
description=field.get('description'),
fields=read_bigquery_schema_from_json_recursive(field.get('fields'))
)
else:
schema = SchemaField(
name=field.get('name'),
field_type=field.get('type', 'STRING'),
mode=field.get('mode', 'NULLABLE'),
description=field.get('description')
)
result.append(schema)
return result
</code></pre>