Google bigquery BigQuery:具有可选参数的持久UDF

Google bigquery BigQuery:具有可选参数的持久UDF,google-bigquery,user-defined-functions,optional-parameters,Google Bigquery,User Defined Functions,Optional Parameters,我正在使用persistenudf函数,但不确定如何使用可选参数(如默认值)来实现它们 例如,一个简单的函数替换了NaN: CREATE OR REPLACE FUNCTION `my_project.functions.ifnan`(number ANY TYPE, default_value ANY TYPE) AS ( if(is_nan(number),default_value,number) ); 如何使其在默认情况下像ifnan(value)一样返回0,并且仅当指定的其他默

我正在使用persistenudf函数,但不确定如何使用可选参数(如默认值)来实现它们

例如,一个简单的函数替换了
NaN

CREATE OR REPLACE FUNCTION 
`my_project.functions.ifnan`(number ANY TYPE, default_value ANY TYPE) 
AS 
(
if(is_nan(number),default_value,number)
);
如何使其在默认情况下像
ifnan(value)
一样返回
0
,并且仅当指定的其他默认值覆盖
0

类似于
ifnan(数字[,默认值])
查看,我们可以看到,对于
SQL
JavaScript
udf,都没有指定这种结构

在SQL语法中:

CREATE [OR REPLACE] [TEMPORARY | TEMP] FUNCTION [IF NOT EXISTS]
    [[`project_name`.]dataset_name.]function_name
    ([named_parameter[, ...]])
  [RETURNS data_type]
  AS (sql_expression)

named_parameter:
  param_name param_type
在JavaScript语法中:

CREATE [OR REPLACE] [TEMPORARY | TEMP] FUNCTION [IF NOT EXISTS]
    [[`project_name`.]dataset_name.]function_name
    ([named_parameter[, ...]])
  RETURNS data_type
  LANGUAGE js
  [OPTIONS (library = library_array)]
  AS javascript_code 
除此之外,我们还可以找到以下声明:

命名参数。由逗号分隔的参数名和 参数类型对。param_type的值是BigQuery数据类型。对于 一个SQL UDF,param_type的值也可以是任何类型

因此,不幸的是,在
BigQuery
中使用UDF时,这似乎是不可能的

如果您需要任何进一步的帮助,请让我知道。

查看我们可以看到,对于
SQL
JavaScript
udf,都没有指定这种结构

在SQL语法中:

CREATE [OR REPLACE] [TEMPORARY | TEMP] FUNCTION [IF NOT EXISTS]
    [[`project_name`.]dataset_name.]function_name
    ([named_parameter[, ...]])
  [RETURNS data_type]
  AS (sql_expression)

named_parameter:
  param_name param_type
在JavaScript语法中:

CREATE [OR REPLACE] [TEMPORARY | TEMP] FUNCTION [IF NOT EXISTS]
    [[`project_name`.]dataset_name.]function_name
    ([named_parameter[, ...]])
  RETURNS data_type
  LANGUAGE js
  [OPTIONS (library = library_array)]
  AS javascript_code 
除此之外,我们还可以找到以下声明:

命名参数。由逗号分隔的参数名和 参数类型对。param_type的值是BigQuery数据类型。对于 一个SQL UDF,param_type的值也可以是任何类型

因此,不幸的是,在
BigQuery
中使用UDF时,这似乎是不可能的

如果你需要任何进一步的帮助,请告诉我