将参数化的BigQuery魔法分配给Jupyter中的变量

时间:2017-12-13 07:40:00

标签: google-bigquery jupyter

如果Jupyter中有参数,我如何分配BigQuery单元魔术操作的输出?

%%bq execute --query sql_my_query --to-dataframe
parameters:
- name: min_val
  type: STRING
  value: $min_val
- name: max_val
  type: STRING
  value: $max_val

我尝试在BQ魔法面前放置变量(例如myvar = %%bq ...),我尝试使用myvar << %%bq,在整个表达式周围添加括号或括号但没有似乎工作。有没有人有任何想法?

除了Python API之外,examples中没有任何示例,对于应该相当标准的内容来说,这似乎有些混乱。

1 个答案:

答案 0 :(得分:0)

您可以使用magic命令在一个单元格中定义查询。 但是,要执行查询并提供参数值,请在另一个单元格中执行,而无需使用魔术命令:

# in the first cell
%%bq query --name day_extract_query
SELECT EXTRACT(DAY FROM @input_date) AS day

在那之后,使用没有任何魔力的纯python执行

# then, in a second cell
query_params1 = [{ "name": "input_date",
                   "parameterType": { "type": "DATE" },
                   "parameterValue": { "value": "2019-01-03" } }]
day1 = day_extract_query.execute(query_params=query_params1).result()