Google BigQuery从Python脚本执行SQL文件

时间:2018-08-21 01:16:19

标签: python sql pandas google-bigquery

我有一个使用datalab.bigquery来执行写出的SQL查询的python文件。但是,我将这个SQL查询保存在相同的GitHub存储库中,因此想知道是否存在一种无需复制和粘贴查询即可运行github SQL文件的方法。

当前看起来像这样:

import datalab
import datalab.bigquery as bq
import pandas as pd 

df = bq.Query('''
                SELECT
                  CASE
                    WHEN advance_date IS NULL
                        AND release_date IS NULL
                        AND resale_close_date IS NULL
                            THEN TRUE
 ...
 '''_.to_dataframe()

这可以正常工作,但是在对SQL脚本进行更新时,这些更新未反映在此python脚本中,从而造成了问题。我希望它调用保存在Github存储库中的SQL查询。有没有办法做到这一点?像df = bq.execute(sql_file.sql).to_dataframe()。

1 个答案:

答案 0 :(得分:1)

您可以使用包含SQL脚本的Github代码片段的“原始”页面,然后检查该页面以获取脚本。

例如,假设我想要此脚本[1](在您的情况下为SQL脚本),我单击“ RAW”按钮并保存URL。然后,您可以使用requests来查看Python中该URL的内容:

import requests

raw=<URL OF YOUR SQL SCRIPT>
#In my case it would be
#raw="https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/appengine/standard/bigquery/main.py"
r=requests.get(raw).text
df=bq.Query(r).to_dataframe()

如果我理解正确,那就是你想要的:D。