在bigquery的UDF中调用本机函数



我正在尝试将我们的遗留函数转换为标准SQL,因此通过使用udf作为gig来重用本地函数的旧函数名称。

这里我有我的UDF to_char,并在里面使用参数来运行FORMAT_DATE,但是当我执行它时,即使创建了一个例程,我也会得到没有额外信息的错误。一旦创建了例程并注释掉代码,错误就会出现function to_char not found

如果我运行CREATE TEMP FUNCTION,我得到很长的加载时间(大约30 - 90秒),这显然是不对的。

CREATE OR REPLACE FUNCTION mytable.TO_CHAR(dstamp DATETIME, fmt STRING)
RETURNS STRING AS
(
FORMAT_DATE(fmt, dstamp)
);
SELECT
TO_CHAR(End_Time, 'yyyy-mm') AS Month_and_Year,

我不想创建一个临时函数。理想情况下,我想有一个例程,我可以在需要时继续调用,但我搞砸了我的UDF和FORMATE_DATE函数。任何帮助将非常感激,谢谢!

btw在GBQ中运行这个

您需要引用带有数据集前缀的UDF,否则BigQuery认为它是内置函数或临时UDF。在您的情况下,只需将TO_CHAR更改为mytable.TO_CHAR。假设您的mytable实际上是一个数据集。

SELECT mytable.TO_CHAR(End_Time, 'yyyy-mm') AS Month_and_Year,

相关内容

  • 没有找到相关文章

最新更新