使用 Google Datalab,如何在 Google BigQuery 中使用 UDF 从复杂查询创建 table?
Using Google Datalab, how to create table from a complex query with UDF in Google BigQuery?
我见过很多类似的问题,但它们并不特定于 Google Cloud Datalab 并且同时使用 UDF,例如 and creating table from query result via python API.
我在未使用 UDF 时设法创建了 table,但当它使用时,它返回错误 "Unknown TVF: myFunc"。
编辑
这是我正在使用的代码:
%%bigquery udf --module transform_field
...udf function...
然后我在 sql 查询中使用了上面的 udf 函数:
%%sql --module querymodule
...complex SELECT query FROM transform_field(table)...
然后我想使用该查询创建另一个 table,如下所示:
%%bigquery execute --target project:dataset.tablename --query querymodule
但它一直显示此错误:
Unknown TVF: TRANSFORM_FIELD
好的,我找到了。事实证明,在 %%bigquery execute
单元格中使用查询之前,您需要通过 python 单元格传递查询:
bq_query = bq.Query(querymodule, udf=transform_field)
所以整个过程应该是这样的:
%%bigquery udf --module transform_field
...udf function...
然后我在 sql 查询中使用了上面的 udf 函数:
%%sql --module querymodule
...complex SELECT query FROM transform_field(table)...
然后使用上面的查询和udf函数创建一个bq.Query
对象。
bq_query = bq.Query(querymodule, udf=transform_field)
然后在table创建中使用bq_query
。
%%bigquery execute --target project:dataset.tablename --query bq_query
我一直对良好睡眠的作用感到惊讶。
我见过很多类似的问题,但它们并不特定于 Google Cloud Datalab 并且同时使用 UDF,例如
我在未使用 UDF 时设法创建了 table,但当它使用时,它返回错误 "Unknown TVF: myFunc"。
编辑 这是我正在使用的代码:
%%bigquery udf --module transform_field
...udf function...
然后我在 sql 查询中使用了上面的 udf 函数:
%%sql --module querymodule
...complex SELECT query FROM transform_field(table)...
然后我想使用该查询创建另一个 table,如下所示:
%%bigquery execute --target project:dataset.tablename --query querymodule
但它一直显示此错误:
Unknown TVF: TRANSFORM_FIELD
好的,我找到了。事实证明,在 %%bigquery execute
单元格中使用查询之前,您需要通过 python 单元格传递查询:
bq_query = bq.Query(querymodule, udf=transform_field)
所以整个过程应该是这样的:
%%bigquery udf --module transform_field
...udf function...
然后我在 sql 查询中使用了上面的 udf 函数:
%%sql --module querymodule
...complex SELECT query FROM transform_field(table)...
然后使用上面的查询和udf函数创建一个bq.Query
对象。
bq_query = bq.Query(querymodule, udf=transform_field)
然后在table创建中使用bq_query
。
%%bigquery execute --target project:dataset.tablename --query bq_query
我一直对良好睡眠的作用感到惊讶。