Datalab创建一个返回STRUCT的BigQuery UDF

时间:2017-05-12 07:42:33

标签: google-bigquery udf google-cloud-datalab

使用Google Cloud DataLab时,我很难创建一个返回STRUCT的UDF。

作为一个最小的例子,如果我在datalab笔记本中这样做:

%bq udf -n demo -l js
// Some fn description
// @param x FLOAT64
// @returns STRUCT<Name STRING>

var obj = {name:"John"};
return obj;

然后我遇到以下错误:

UDF return type must be defined using // @returns <type>

然而,当我使用BigQuery Web UI时,我可以这样做:

CREATE TEMPORARY FUNCTION demo(x FLOAT64)
RETURNS STRUCT<Name STRING>
LANGUAGE js AS """
return {
Name: "John"
};
""";

SELECT demo(data) as demoOutput
FROM UNNEST([1,2]) AS data;

并获得预期的输出。

如何使用Datalab声明返回STRUCT的UDF?

1 个答案:

答案 0 :(得分:3)

很抱歉,您遇到此错误,这是由不接受空格的类型解析正则表达式引起的。请参阅this github issue,这是一个可能会在下一个版本中发布的出色修复。