以下python代码段会在标题中产生错误:
job_config = bigquery.QueryJobConfig()
# Set the destination table
table_ref = client.dataset(args.bq_dataset_id).table(args.bq_cum_table)
job_config.destination = table_ref
job_config.write_disposition = 'WRITE_APPEND'
job_config.schemaUpdateOptions = ['ALLOW_FIELD_ADDITION', 'ALLOW_FIELD_RELAXATION']
# Start the query, passing in the extra configuration.
query_job = client.query(
sqlstr,
# Location must match that of the dataset(s) referenced in the query
# and of the destination table.
location="US",
job_config=job_config,
) # API request - starts the query
query_job.result() # Wait for the query to finish
我正在使用“将查询结果写到目标表” here,但使用附加的“ ALLOW_FIELD_ADDITION”和“ ALLOW_FIELD_RELAXATION”配置设置(我认为)可以将更多列添加到目标表。 我要附加的数据架构可能不是目标表架构的超集。如果这些考虑因素很重要,我将无法控制查询结果的顺序。
我正在使用标准SQL。查询就像:
选择 `StudyDate`, `SeriesDate`, `AcquisitionDate` 从`project.dataset.table` LIMIT 1
这是我第一次使用BQ Python库,因此如果我忽略了某些内容,我不会感到惊讶。
谢谢。
答案 0 :(得分:1)
除了一个小错误之外,您做对了。
job_config.schemaUpdateOptions
是BigQuery Python API中不存在的字段。将其更改为job_config.schema_update_options
,您的代码将按预期工作。
此外,here are several examples显示了如何使用Python修改BigQuery表架构。