Как вы уже определили, есть два способа работы с BigQuery в Datalab:
- Использование %% bq , как представлено в в этом примере ноутбука .
- Использование библиотек Datalab's BigQuery API ( образец блокнота ).В настоящее время поддерживается и обновляется версия
google.datalab.bigquery
, однако устаревшая версия datalab.bigquery
по-прежнему доступна по причинам обратной совместимости.
Согласно полученному сообщению об ошибке (Cannot reference a legacy SQL view in a standard SQL query
)Я понимаю, что запрашиваемое вами представление было создано с помощью устаревшего SQL-запроса.Как объясняется в этом посте, Datalab переходит на стандартный SQL , и поэтому его поддержка Legacy SQL прекращается.По этой причине и %%bq
, и google.datalab.bigquery
не поддерживают устаревший SQL и работают только со стандартным SQL.
Если вам действительно нужно представление, как оно есть сейчас (т.е. создано с помощью Legacy SQL)В качестве временного решения вы можете вместо этого использовать старую библиотеку (которая все еще доступна), datalab.bigquery
, как показано ниже:
import datalab.bigquery as bq
bq.Query("SELECT * FROM dataset.legacy_sql_view;").results()
Однако я настоятельно рекомендую начать , переходя на стандартнуюSQL , учитывая, что это предпочтительный язык запросов для BigQuery, и он имеет несколько преимуществ, среди которых вы можете сосчитать официальную поддержку в Datalab.