2015-11-09 1 views
1

Пример параметризации в блоке IPython «Параметры SQL» в datalab github repo (в разделе datalab/tutorials/BigQuery /) показывает, как изменить тестируемое значение в предложении WHERE. Можно ли использовать параметр, чтобы изменить имя поля, на которое SELECT'd включен?Параметры в модулях SQL Datalab

например: SELECT COUNT (DISTINCT $ а) AS п FROM [...]

После того, как я получил ответ ниже, вот что я сделал (с фиктивным именем таблицы и имя поля, очевидно):.

table = bq.Table('project_id.dataset_id.table_id') field = table.schema['field_name'] bq.Query(test01.get_counts,a=field).sql bq.Query(test01.get_counts,a=field).results()

ответ

2

Вы можете использовать поле из объекта схемы (например, дается таблица, получить определенное поле через table.schema [fieldn AME]).

Или реализовать пользовательский объект с помощью метода _repr_sql_. См.: https://github.com/GoogleCloudPlatform/datalab/blob/master/sources/lib/api/gcp/bigquery/_schema.py#L49

+0

Большое спасибо. Я добавлю некоторые дополнительные детали к моему оригинальному вопросу о том, как я это делаю, если это полезно кому-то другому. – SheRey

+0

Отлично - пример должен помочь другим в будущем! –