Хотя трудно понять причину вашей ошибки, не видя получаемого вами сообщения, я смог выполнить ваш запрос с некоторыми незначительными отличиями. Однако я должен подчеркнуть некоторые моменты заранее.
Сначала проверьте, нужно ли проверять, правильно ли настроены API Google Compute Engine и Cloud Source Repositories и правильно ли настроен ваш проект, здесь .
Я следовал этому руководству в документации, чтобы установить Gcloud в моем локальном терминале, но вы можете выбрать другие способы установки здесь , на случай, если вы нужно это. Затем, чтобы настроить DataLab, я следовал QuickStart , предоставленному Google.
Чтобы использовать BigQuery в записной книжке, вы должны импортировать модуль google.datalab.bigquery
. После этого в вашей командной строке я просто добавил оператор UNION ALL , чтобы значения отображались в 2 разных строках следующим образом:
query_test = bq.Query('Select 3 UNION ALL Select 2 ')
Там выиграно ' Чтобы не быть отображаемых результатов, чтобы убедиться, что результаты будут получены, вы должны использовать методы execute()
и result()
чтобы выполнить вышеуказанный запрос. Кроме того, вы также можете, в качестве опции, установить кеш отключенным, чтобы результаты, которые вы получаете, были получены не от других предыдущих прогонов. Вы можете сделать это следующим образом:
output_options = bq.QueryOutput.table(use_cache=False)
result = query_test.execute(output_options=output_options).result()
result
И вывод:
f0_
3
2
Другой способ выполнить тот же запрос и получить тот же результат, что и выше, - использовать %% bq , как вы упомянули. Вы можете выполнить тот же запрос, как показано ниже:
%%bq query
select 2 union all select 3
Я рекомендую вам взглянуть на datalab/docs/tutorials/BigQuery/BigQuery/
в вашем экземпляре блокнота, есть важные примеры использования и объяснения, а также Работа с блокнотами документация .