【发布时间】:2021-12-10 20:20:53
【问题描述】:
我正在尝试将 bigquery 写入不同的表目标,如果这些表尚不存在,我想动态创建它们。
bigquery_rows | "Writing to Bigquery" >> WriteToBigQuery(lambda e: compute_table_name(e),
schema=compute_table_schema,
additional_bq_parameters=additional_bq_parameters,
write_disposition=BigQueryDisposition.WRITE_APPEND,
create_disposition=BigQueryDisposition.CREATE_IF_NEEDED,
)
compute_table_name 函数其实很简单,我只是想让它工作。
def compute_table_name(element):
if element['table'] == 'table_id':
del element['table']
return "project_id:dataset.table_id"
已正确检测到架构,并已创建表并填充了记录。问题是,我得到的表 ID 类似于:
datasetId: 'dataset'
projectId: 'project_id'
tableId: 'beam_bq_job_LOAD_AUTOMATIC_JOB_NAME_LOAD_STEP...
我也尝试在我的 compute_table_name 函数中返回一个 bigquery.TableReference 对象,但无济于事。
编辑:我正在使用 apache-beam 2.34.0,并且我在 JIRA here
上打开了一个问题【问题讨论】:
标签: python google-bigquery apache-beam