Python Ошибка BigQuery: 400 configuration.query.destinationTable не может быть установлен для сценариев - PullRequest
0 голосов
/ 13 февраля 2020

Привет всем, что я пытаюсь сделать, это вставить данные запроса в tableA(), после того, как данные вставлены в Table A, затем удалить вновь вставленные значения в A, а затем записать ответ / вывод в Table B, который я создал.

Вот мой python код:

client = bigquery.Client()
#This is Table B
table_id = "ntest.practice.btabletest"
#here is the table I am writing my deleted output to
job_config = bigquery.QueryJobConfig(destination=table_id)


sql2 ="""
   INSERT INTO `ntest.practice.atabletest`(%s) VALUES (%s);
   DELETE FROM `ntest.practice.atabletest`
   WHERE name = 'HEART'
"""%(columns_aaa,valueaaa)

query_job1 = client.query(sql2,job_config=job_config)  # Make an API request.
query_job1.result()  # Waits for query to finish
print("Query results loaded to the table {}".format(table_id))

Тем не менее, я получаю код ошибки:

google.api_core .exceptions.BadRequest: 400 configuration.query.destinationTable не может быть установлен для сценариев

Есть мысли о том, как исправить эту ошибку? Я не верю, что мой запрос неправильный, а мои таблицы или значения неверны.

1 Ответ

0 голосов
/ 13 февраля 2020

Хотя сценарии BigQuery не поддерживают таблицу назначения, не похоже, что она понадобится для вашего конкретного запроса c.

DELETE запрос никогда не записывает данные в таблицу назначения , Вы можете обойти это, отправив сначала INSERT, а затем DELETE, таким образом, таблица назначения будет «работать» (я имею в виду, что BigQuery не будет жаловаться на это). Но вы получаете пустую таблицу.

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