BigQuery: как перезаписать таблицу с помощью метода bigquery.Client (). Copy_table - PullRequest
0 голосов
/ 12 октября 2018

Вот код, который я использую в качестве ссылки из 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.

В моем случае таблица назначения существует, и я получаю эту ошибку:

Already Exists

Как можноЯ перезаписываю этим методом copy_table?В командной строке bq я могу использовать опцию -f.Поэтому я ищу тот же флаг.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Вам необходимо передать конфигурацию задания в запрос следующим образом:

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

Дополнительные документы здесь: https://googleapis.github.io/google-cloud-python/latest/bigquery/generated/google.cloud.bigquery.client.Client.copy_table.html

0 голосов
/ 12 октября 2018

См. Связанные документы:

configuration.copy.writeDisposition: указывает действие, которое выполняется, если таблица назначения уже существует.

Поддерживаются следующие значения:

  • WRITE_TRUNCATE: если таблица уже существует, BigQuery перезаписывает данные таблицы.
  • WRITE_APPEND: если таблица уже существует, BigQuery добавляет данные в таблицу.
  • WRITE_EMPTY: Если таблица уже существует и содержит данные, в результате задания возвращается «дубликат» .

Значением по умолчанию является WRITE_EMPTY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...