我的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
答案 0 :(得分:1)
不幸的是,官方文档中缺少此部分,我不得不仔细阅读代码以最终找到解决方案。我在这里记录我的发现,希望对遇到同样问题的人们有所帮助。有两种方法可以做到这一点。
方法1 [根本不使用magic命令]:
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()
方法2 [魔术命令规则!]:
params = {'date_str_query': '%-2019-02-%'}
%%bigquery df --params $params
select * from `project.dataset.table`
where date_str like @date_str_query
我更喜欢方法2 ,因为您可以使用magic命令突出显示SQL语法和其他功能。
参考文献:
Google文档:https://cloud.google.com/bigquery/docs/visualize-jupyter
#####更新#####
新文档详细描述了magic命令的各种输入。可以在这里找到:https://googleapis.github.io/google-cloud-python/latest/bigquery/magics.html?highlight=gender