Ссылки из Python Bigquery Client не работают

У меня проблемы с запуском следующего кода:

from google.cloud import bigquery
client = bigquery.Client.from_service_account_json(BQJSONKEY,project = BQPROJECT)
dataset = client.dataset(BQDATASET)
assert not dataset.exists() 

Выскакивает следующая ошибка: 'DatasetReference' object has no attribute 'exists'

Точно так же, когда я делаю:

table = dataset.table(BQTABLE)

я получаю: 'TableReference' object has no attribute 'exists'

Однако, согласно документам, это должно работать: https://googlecloudplatform.github.io/google-cloud-python/stable/bigquery/usage.html#datasets

вот мой pip freeze (часть с google-cloud):

gapic-google-cloud-datastore-v1==0.15.3
gapic-google-cloud-error-reporting-v1beta1==0.15.3
gapic-google-cloud-logging-v2==0.91.3
gevent==1.2.2
glob2==0.5
gmpy2==2.0.8
google-api-core==0.1.1
google-auth==1.2.1
google-cloud==0.30.0
google-cloud-bigquery==0.28.0
google-cloud-bigtable==0.28.1
google-cloud-core==0.28.0
google-cloud-datastore==1.4.0
google-cloud-dns==0.28.0
google-cloud-error-reporting==0.28.0
google-cloud-firestore==0.28.0
google-cloud-language==1.0.0
google-cloud-logging==1.4.0
google-cloud-monitoring==0.28.0
google-cloud-pubsub==0.29.1
google-cloud-resource-manager==0.28.0
google-cloud-runtimeconfig==0.28.0
google-cloud-spanner==0.29.0
google-cloud-speech==0.30.0
google-cloud-storage==1.6.0
google-cloud-trace==0.16.0
google-cloud-translate==1.3.0
google-cloud-videointelligence==0.28.0
google-cloud-vision==0.28.0
google-gax==0.15.16
google-resumable-media==0.3.1
googleapis-common-protos==1.5.3

Интересно, как я могу это исправить и заставить его работать?


person user912830823    schedule 28.11.2017    source источник


Ответы (2)


Не уверен, как вы попали в эти документы, но вы должны использовать их в качестве ссылки:

https://googlecloudplatform.github.io/google-cloud-python/latest/bigquery/usage.html#datasets

Код для 0.28 будет примерно таким:

dataset_refence = client.dataset(BQDATASET)
dataset = client.get_dataset(dataset_reference)
assert dataset.created is not None
person Willian Fuks    schedule 28.11.2017

Я думаю, вы забыли создать набор данных перед вызовом exists()

dataset = client.dataset(BQDATASET)
dataset.create() 
assert not dataset.exists() 
person Cyzanfar    schedule 28.11.2017
comment
но я делаю dataset = client.dataset(BQDATASET), где BQDATASET — это имя набора данных. Поэтому я ожидаю получить True из моего кода. Не уверены, что create здесь уместно? - person user912830823; 28.11.2017
comment
хммм. хорошо, давайте я попробую что-нибудь еще - person Cyzanfar; 28.11.2017