我的 Jupyter 笔记本中有几个单元格正在从 Google 的 BigQuery 查询数据。这些查询的一部分共享相同的变量。我正在寻找最简洁的方法来分解这些变量,因此每次我想进行更改时都不必单独手动设置它们。
这是我所拥有的一个例子:
%%bigquery df
select * from `project.dataset.table`
where date_str like '2019-02-%'
这是我要找的:
date_str_query = '2019-02-%' # this variable would be in the python environment
%%bigquery df
select * from `project.dataset.table`
where date_str like date_str_query
最佳答案
##### 更新 #####
新文档详细描述了魔法命令的各种输入。可以在这里找到:https://googleapis.github.io/google-cloud-python/latest/bigquery/magics.html?highlight=gender
##### 原始帖子#####
不幸的是,官方文档中缺少这部分,我不得不通过代码来最终找到解决方案。我在这里记录我的发现,希望能帮助有同样问题的人。有两种方法可以做到这一点。
方式一 [根本不使用魔法命令]:
date_str_query = '2019-02-%'
sql = """
select * from `project.dataset.table`
where date_str like {0}
""".format(date_str_query)
df = client.query(sql).to_dataframe()
方式二 【魔法命令规则!】:
params = {'date_str_query': '%-2019-02-%'}
%%bigquery df --params $params
select * from `project.dataset.table`
where date_str like @date_str_query
我更喜欢 方式二 因为您可以使用魔术命令获得 SQL 语法高亮显示和许多其他功能。
引用:
Google 的文档:https://cloud.google.com/bigquery/docs/visualize-jupyter
源代码:https://github.com/googleapis/google-cloud-python/blob/master/bigquery/google/cloud/bigquery/magics.py
关于google-bigquery - 使用 BigQuery Jupyter 魔术命令时,将 Python 环境中的变量添加到查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731255/