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

Posted

技术标签:

【中文标题】将参数化的 BigQuery 魔法分配给 Jupyter 中的变量【英文标题】:Assign parameterised BigQuery magic to variable in Jupyter 【发布时间】:2017-12-13 07:39:59 【问题描述】:

如果有参数,我如何在 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,在整个表达式周围添加括号或大括号,但似乎没有任何效果。有人有什么想法吗?

examples 中也没有示例,除了 Python API,这对于应该相当标准的东西来说似乎有点混乱。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于将参数化的 BigQuery 魔法分配给 Jupyter 中的变量的主要内容,如果未能解决你的问题,请参考以下文章

Python 魔法方法~~

Python 魔法方法详解

Python中的魔法函数总结整理

21 python的魔法方法(转)

[小甲鱼]入门学习python笔记 魔法方法

Python中被双下划线包围的魔法方法