这是我正在从https://cloud.google.com/bigquery/docs/managing-tables#bigquery-copy-table-python进行引用的代码:
source_dataset = client.dataset('samples', project='bigquery-public-data')
source_table_ref = source_dataset.table('shakespeare')
# dataset_id = 'my_dataset'
dest_table_ref = client.dataset(dataset_id).table('destination_table')
job = client.copy_table(
source_table_ref,
dest_table_ref,
# Location must match that of the source and destination tables.
location='US') # API request
job.result() # Waits for job to complete.
Run Code Online (Sandbox Code Playgroud)
在我的情况下,目标表存在,并且出现此错误:
Already Exists
Run Code Online (Sandbox Code Playgroud)
如何使用此copy_table方法覆盖?在bq命令行中,我可以使用-f选项。所以我正在寻找相同的标志。
您需要像这样将作业配置传递给请求:
job_config = bigquery.CopyJobConfig()
job_config.write_disposition = "WRITE_TRUNCATE"
job = client.copy_table(
source_table_ref,
dest_table_ref,
location='US',
job_config=job_config) # API request
Run Code Online (Sandbox Code Playgroud)
此处提供更多文档:https : //googleapis.github.io/google-cloud-python/latest/bigquery/generated/google.cloud.bigquery.client.Client.copy_table.html
请参阅链接的文档:
configuration.copy.writeDisposition:指定目标表已存在时发生的操作。
支持以下值:
默认值为WRITE_EMPTY。
归档时间: |
|
查看次数: |
1893 次 |
最近记录: |