google-bigquery - 使用 BigQuery Jupyter 魔术命令时,将 Python 环境中的变量添加到查询中

标签 google-bigquery jupyter

我的 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/

相关文章:

google-app-engine - SSL : CERTIFICATE_VERIFY_FAILED on GAE/Go

python-3.x - 输入功能不适用于 Vscode 中的 python

python - 从 Jupyter 复制输出以粘贴到 Excel 中的简单方法

sql - BigQuery,连续行之间的差异相关问题

google-analytics - 计算 BigQuery 中的谷歌分析独特事件

google-bigquery - 在哪里提交 BigQuery 的新功能请求?

python - Xgboost 适用于 pycharm,但不适用于 Jupyter NoteBook

python - 如何重新导入 jupyter html 文件?

Python:Dash、Plotly 和 Jupyter Notebook:改用 WSGI 服务器

google-bigquery - Bigquery SELECT * WHEN COUNT(DISTINCT value) 不起作用