【问题标题】:Upload UDF in BigQuery using Python API Client使用 Python API 客户端在 BigQuery 中上传 UDF
【发布时间】:2021-01-17 03:08:18
【问题描述】:

我想在 BigQuery 的特定数据集中创建一个 UDF。我已尝试使用 Python 客户端 中的 create_table 和其他 API 方法,但似乎都不起作用。

是否有任何方法或方式将 UDF(存储在文件中并作为字符串读取)上传到 BigQuery?

【问题讨论】:

    标签: google-bigquery user-defined-functions google-api-python-client


    【解决方案1】:

    这是我的 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 字符串。

    【讨论】:

    • 在 bash 中使用 bq 可以完美运行。但我想知道这是否也可以在 Python 中实现?
    • @Julian - 我也添加了 python 方式。
    • 是的,我也是这样做的,我正在创建一个 job_config 并调用方法:create_table 和其他一些方法,而不仅仅是查询我需要什么。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2014-09-22
    • 1970-01-01
    • 2020-07-06
    • 2018-03-13
    • 2021-10-14
    • 2010-10-26
    相关资源
    最近更新 更多