1

datalab github 存储库(位于 datalab/tutorials/BigQuery/ 下)的“SQL 参数”IPython 笔记本中的参数化示例显示了如何更改在 WHERE 子句中测试的值。是否可以使用参数来更改正在选择的字段的名称?

例如:SELECT COUNT(DISTINCT $a) AS n FROM [...]

在我收到下面的答案后,这就是我所做的(显然是一个虚拟表名和字段名):

%%sql --module test01 DEFINE QUERY get_counts SELECT $a AS a, COUNT(*) AS n FROM [project_id.dataset_id.table_id] GROUP BY a ORDER BY n DESC

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()

4

1 回答 1

2

您可以使用 Schema 对象中的字段(例如,给定一个表,通过 table.schema[fieldname] 获取特定字段)。

或者使用 _repr_sql_ 方法实现自定义对象。请参阅:https ://github.com/GoogleCloudPlatform/datalab/blob/master/sources/lib/api/gcp/bigquery/_schema.py#L49

于 2015-11-09T06:40:33.080 回答