Google bigquery 是"--查看“udf资源”;破碎的

Google bigquery 是"--查看“udf资源”;破碎的,google-bigquery,Google Bigquery,我想在视图中引用UDF。根据BigQuery文档('bq help mk')和本文,可以使用“-view\u udf\u resource”语法来完成 但是,当我尝试它时,会出现以下错误: # gsutil cat gs://mybucket/bar.js CREATE TEMP FUNCTION GetWord() AS ('fire'); # bq mk --nouse_legacy_sql --view_udf_resource="gs://mybucket/bar2.js" --vie

我想在视图中引用UDF。根据BigQuery文档('bq help mk')和本文,可以使用“-view\u udf\u resource”语法来完成

但是,当我尝试它时,会出现以下错误:

# gsutil cat gs://mybucket/bar.js
CREATE TEMP FUNCTION GetWord() AS ('fire');

# bq mk --nouse_legacy_sql --view_udf_resource="gs://mybucket/bar2.js" --view="SELECT 1 as one, GetWord() as myvalue" mydataset.myfoo
Error in query string: Function not found: GetWord at [1:18]
我也尝试过使用Java API,但得到了相同的错误:

   public void foo(){
        final String viewQuery = "#standardSQL\n SELECT 1 as one, GetWord() as myvalue";

        UserDefinedFunction userDefinedFunction = UserDefinedFunction.inline("CREATE TEMP FUNCTION GetWord() AS ('fire');");

        ViewDefinition tableDefinition = ViewDefinition.newBuilder(viewQuery)
                .setUserDefinedFunctions(userDefinedFunction)
                .build();
        TableId viewTableId = TableId.of(projectName, dataSetName, "foobar");
        final TableInfo tableInfo = TableInfo.newBuilder(viewTableId, tableDefinition).build();

        bigQuery.create(tableInfo);
    }

com.google.cloud.bigquery.BigQueryException: Function not found: GetWord at [2:19]

我做错什么了吗?或者谷歌的文档是否具有误导性,并且无法从视图中引用任何自定义自定义自定义项?

您(当前)无法使用使用自定义项的标准SQL创建视图。您需要将所有逻辑作为查询本身的一部分进行内联,并且您所看到的文章是关于使用遗留SQL的JavaScript UDF的。但是,有一种方法支持UDF的永久注册,这将使您能够从视图中引用UDF。

谢谢。我不确定这篇文章和谷歌文档是否只是指“传统模式”。