Python SDK query_job.result () не в состоянии опросить статус задания - PullRequest
0 голосов
/ 13 сентября 2018

google-cloud-bigquery версия 1.5.0 и стек разбился в коде sdk. есть ли обходной путь?

[2018-09-12 21:18:01,265] {base_task_runner.py:98} INFO - Subtask: query_job.result() # Waits for the query to finish ... [2018-09-12 21:18:01,315] {base_task_runner.py:98} INFO - Subtask: raise exceptions.from_http_response(response) [2018-09-12 21:18:01,316] {base_task_runner.py:98} INFO - Subtask: google.api_core.exceptions.BadRequest: 400 GET https://www.googleapis.com/bigquery/v2/projects/fsql-production/queries/[my job id]?maxResults=0: Cannot return an invalid timestamp value of 1534808046936000000 microseconds relative to the Unix epoch. The range of valid timestamp values is [0001-01-1 00:00:00, 9999-12-31 23:59:59.999999]; error in writing field request_started_at

1 Ответ

0 голосов
/ 13 сентября 2018

Это указывает на ошибку в вашем запросе, а не в коде клиента. Ошибка:

Невозможно вернуть недопустимое значение временной метки 1534808046936000000 микросекунд относительно эпохи Unix. Диапазон допустимых значений меток времени: [0001-01-1 00:00:00, 9999-12-31 23: 59: 59.999999]; ошибка записи поля request_started_at

Похоже, у вас есть поле / столбец с именем request_started_at, который масштабируется неправильно; 1534808046936000000 должно быть 1534808046936000. В руководстве по этому вопросу есть некоторые материалы по переходу на стандартный SQL . Если все значения в этом столбце неправильно масштабированы, вы можете сделать что-то вроде этого, чтобы исправить их:

CREATE OR REPLACE dataset.table AS
SELECT *
  REPLACE (TIMESTAMP_MICROS(DIV(UNIX_MICROS(request_started_at), 1000)) AS request_started_at)
FROM dataset.table

Заменяет значения в столбце после их уменьшения в 1000 раз.

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