【发布时间】:2021-01-17 03:08:18
【问题描述】:
我想在 BigQuery 的特定数据集中创建一个 UDF。我已尝试使用 Python 客户端 中的 create_table 和其他 API 方法,但似乎都不起作用。
是否有任何方法或方式将 UDF(存储在文件中并作为字符串读取)上传到 BigQuery?
【问题讨论】:
标签: google-bigquery user-defined-functions google-api-python-client
我想在 BigQuery 的特定数据集中创建一个 UDF。我已尝试使用 Python 客户端 中的 create_table 和其他 API 方法,但似乎都不起作用。
是否有任何方法或方式将 UDF(存储在文件中并作为字符串读取)上传到 BigQuery?
【问题讨论】:
标签: google-bigquery user-defined-functions google-api-python-client
这是我的 UDF:
$ cat test.udf
CREATE OR REPLACE FUNCTION dataset_name.addFourAndDivideAny(x ANY TYPE, y ANY TYPE) AS ((x + 4) / y);
这是我在 Cloud Shell 上运行的上传命令(它会要求授权):
bq query --nouse_legacy_sql < test.udf
在python中:
from google.cloud import bigquery
client = bigquery.Client()
with open('test.udf', 'r') as file:
QUERY = file.read().replace('\n', '')
query_job = client.query(QUERY)
我在文件中的单行中获得了 UDF,但您也可以使用多行文件。只需确保正确构造了 QUERY 字符串。
【讨论】: