使用 Python API 客户端在 BigQuery 中上传 UDF

Upload UDF in BigQuery using Python API Client

我想在 BigQuery 的特定数据集中创建一个 UDF。我已经尝试使用 Python Client 中的 create_table 和其他 API 方法,但 none 似乎有效。

有什么方法可以将 UDF(存储在文件中并作为字符串读取)上传到 BigQuery 中吗?

这是我的 UDF:

$ cat test.udf
CREATE OR REPLACE FUNCTION dataset_name.addFourAndDivideAny(x ANY TYPE, y ANY TYPE) AS ((x + 4) / y);

这是我在云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,但你也可以使用 multi-lines 文件。只需确保 QUERY 字符串构造正确即可。