Как запросить таблицу BigQuery из блокнота DataLab с помощью google.datalab.bigquery?

У меня есть следующий код в блокноте DataLab:

import google.datalab.bigquery as bq

%bq query
SELECT count(id) FROM 'rtda.tweets'

Он возвращает ошибку:

invalidQuery: Syntax error: Unexpected string literal 'rtda.tweets' at [1:23]

Схема таблицы BiqQuery корректно возвращается командой bigquery schema:

%bigquery schema --table "rtda.tweets"

name        type        mode        description
created_at  TIMESTAMP   NULLABLE    
id          INTEGER     NULLABLE    
id_str      STRING      NULLABLE    
(...)

В консоли BigQuery я могу успешно выполнить запрос:

SELECT count(id) FROM [rtda.tweets];

Проблема в том, что я не могу выполнить эту команду в блокноте DataLab.


person Czeslaw    schedule 01.05.2017    source источник


Ответы (1)


Показанный выше запрос определен с использованием устаревшего SQL, однако стандартный SQL является предпочтительным диалектом SQL для запроса данных, хранящихся в BigQuery, в соответствии с BigQuery документы. Согласно datalab в Google .datalab Migration Guide, Legacy SQL больше не поддерживается в google.datalab. Можете ли вы преобразовать свои запросы в стандартный SQL?

Для стандартного SQL измените кавычки ' вокруг имени таблицы на обратные кавычки.

%bq query

SELECT count(id) FROM `rtda.tweets`

Причина, по которой это работает в консоли BigQuery, заключается в том, что консоль по-прежнему поддерживает устаревший SQL, а google.datalab — нет.

person Anthonios Partheniou    schedule 01.05.2017
comment
Поскольку в этом имени таблицы не используются специальные символы, вы можете убрать обратные кавычки и использовать только SELECT count(id) FROM rtda.tweets - person Mosha Pasumansky; 01.05.2017