GCP BigQuery выдает неверный URL при попытке get_status схемы, даже если схема существует - PullRequest
0 голосов
/ 22 января 2020

Схема очень хорошо существует, и я могу копировать и запускать на BigQuery. В файле needs.txt мы используем последний пакет (google-cloud-bigquery)

исключение Неверный URL-адрес 'Нет / bigquery / v2 / projects / XXXXXX / XXXXX Схема не указана. Возможно, вы имели в виду http://None/bigquery/v2/projects/XXXX/XXX

Фрагмент кода:

client = bigquery.Client(project="XXXXXXXX")
client_bq.get_table(table_ref)

1 Ответ

0 голосов
/ 23 января 2020

Мне не ясно, что именно вы передаете с этой переменной table_ref, поэтому я собираюсь объяснить, что ожидает этот метод, надеюсь, что это поможет вам сделать все правильно.

Примечание : будьте осторожны, ваш client объект используется как client_bq, он не запускается.

Метод client.get_table(table_ref) ( документы ) ожидает table_ref, что в соответствии с документацией является указателем на таблицу, и если table_ref является string, он должен включать project ID, dataset ID и table ID, каждый из которых отделен . (точкой), например, от опубликованного c набора данных BigQuery:

table_ref = "bigquery-public-data.noaa_historic_severe_storms.storms_2019"

С учетом этого table_ref должен работать следующий код:

client = bigquery.Client(project="my_project_id")
client.get_table(table_ref)

С другой стороны, если вы хотите создать table_ref как объект Table, обратите внимание, что вам не нужно указывать schema, этот параметр является необязательным ( документы ).

table_ref = bigquery.table.Table("bigquery-public-data.noaa_historic_severe_storms.storms_2019")

Если ваша цель - создать действительный schema, в документах указано, что это сборка с SchemaField объектами, документация я На данный момент это лучший справочник, если вы хотите получить образец, вы можете получить его, сохранив объект Table и получив атрибут schema следующим образом:

>>> table = client.get_table(table_ref)
>>> table.schema

(запустив код в Python консоли)

Пример вывода:

[SchemaField('magnitude', 'FLOAT', 'NULLABLE', 'Description', ()),
SchemaField('magnitude_type', 'STRING', 'NULLABLE', 'Description', ()),
SchemaField('flood_cause', 'STRING', 'NULLABLE', 'Description', ())]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...