Мы пытаемся установить привилегии для наших пользователей Google BigQuery.
Этот код работает при запуске в блокноте Jupyter, но не работает в движке приложений.
from google.cloud import bigquery
client = bigquery.Client.from_service_account_json(credentials, project=project)
dataset = client.get_dataset(client.dataset(dataset_name))
Код выдает эту ошибку:
У объекта «Клиент» нет атрибута «get_dataset»
Мы предположили, что это произошло из-за App Engineвозможно, используется более старая версия BigQuery, в которой этот метод отсутствует, но когда мы добавим следующую строку ...
print "Version: ", bigquery.__version__
..., будет показана версия 0,30, которая, как мы понимаем,он должен поддерживать метод get_dataset.
Чего нам не хватает?Что может быть причиной того, что наш объект 'Client' не имеет атрибута 'get_dataset' error?
Приложение: Методы, которые мы видим из каталога (клиент):
> ['SCOPE', '_SET_PROJECT', '__class__', '__delattr__', '__dict__',
> '__doc__', '__format__', '__getattribute__', '__getstate__',
> '__hash__', '__init__', '__module__', '__new__', '__reduce__',
> '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__',
> '__subclasshook__', '__weakref__', '_connection', '_credentials',
> '_determine_default', '_http', '_http_internal', 'copy_table',
> 'dataset', 'extract_table_to_storage', 'from_service_account_json',
> 'job_from_resource', 'list_datasets', 'list_jobs', 'list_projects',
> 'load_table_from_storage', 'project', 'run_async_query',
> 'run_sync_query']