问题描述
我想在BigQuery中的特定数据集中创建一个UDF。我已经尝试过使用 Python客户端中的create_table和其他API方法,但似乎没有一个起作用。
是否有任何方法或方法可以将UDF(存储在文件中并以字符串形式读取)上传到BigQuery中?
解决方法
这是我的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字符串构造正确即可。