BigQuery Неверный идентификатор набора данных - PullRequest
0 голосов
/ 14 мая 2018


Я использовал для запроса в пользовательском интерфейсе
На этот раз я в облачной оболочке и пытаюсь получить доступ к моему набору данных и таблице через python

from google.cloud import bigquery

client = bigquery.Client()
dataset_id = 'mytest-0001:reports_test'
table_id = 'test_data'
dataset_ref = client.dataset(dataset_id)
dataset = client.get_dataset(dataset_ref)
table_ref = dataset_ref.table(table_id)
table = client.get_table(table_ref)
print('Dataset ID: '.format(dataset_id))
print('Description: '.format(dataset.description))
print(table.schema)
print(table.description)
print(table.num_rows)

Я получил ошибку ниже ...

google.api_core.exceptions.BadRequest: 400 GET https://www.googleapis.com/bigquery/v2/projects/gcd-my-reporting/datasets/mytest-0001:reports_test: Неверный идентификатор набора данных "mytest-0001: reports_test". Идентификаторы набора данных должны быть все буквенно-цифровой (плюс подчеркивания, тире и двоеточия) и должен содержать не более 1024 символов.

По какой-то причине я не могу изменить идентификатор набора данных. Есть идеи, как это исправить?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вам не нужно изменять dataset id, просто укажите dataset id без project id.Если вы хотите указать проект по любой причине, вы должны сделать это, когда определите client, как объяснено в этом документе .

Код будет:

from google.cloud import bigquery

client = bigquery.Client(project='mytest-0001')
dataset_id = 'reports_test'
0 голосов
/ 14 мая 2018

Предполагая, что ваше имя проекта mytest-0001, вы должны установить идентификатор набора данных на 'reports_test'.Похоже, вы включили имя проекта в идентификатор набора данных, который не будет работать.

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