Google bigquery 如何在Jupyter笔记本中调用BigQuery函数

Google bigquery 如何在Jupyter笔记本中调用BigQuery函数,google-bigquery,jupyter-notebook,jupyterhub,Google Bigquery,Jupyter Notebook,Jupyterhub,我使用Jupyterhub运行BigQuery SQL,查询的常用语法是: import google.datalab.bigquery as bq sql_qry = "select * from table" query = bq.Query(sql_qry) sql_job = query.execute(output_options = bq.QueryOutput.table(name='output_table',

我使用Jupyterhub运行BigQuery SQL,查询的常用语法是:

import google.datalab.bigquery as bq

sql_qry = "select * from table"

query = bq.Query(sql_qry)
sql_job = query.execute(output_options = bq.QueryOutput.table(name='output_table',
                                                              mode='overwrite'))
但我尝试在Jupyterhub上使用BigQuery函数:

CREATE TEMP FUNCTION first_letter(x STRING) AS (
SUBSTR(x, 1, 1)
);

你知道我怎么分析这个吗?我当然可以将其作为字符串添加到每个查询中,但由于语法原因,我不能简单地将该查询与同一字符串中的其他查询按顺序运行。

您可以将函数保存在sql文件中,然后在JupyterHub中读取该文件,将其保存在变量中并将其发送到,如下所示:

sql_file = file('function.sql', 'r')
sql = sql_file.read()
sql_file.close()

query_data = {
    'query': sql
}

此外,如果您使用的是Jupyter,则可以使用

您可以提供您尝试运行的查询的示例吗?我不理解您问题的这一部分:“由于语法原因,我不能简单地将该查询与同一字符串中的其他查询按顺序运行”通过删除
temp
,将其变成一个持久函数。然后只需将其用法合并到您的
选择中即可<代码>从表中选择*,project.dataset.fn_首字母(字段)
。是的,正是我想要的。我不知道您可以创建持久性函数并将它们保存在数据库中。谢谢