【发布时间】:2017-01-17 10:53:52
【问题描述】:
如何将一个 STRUCTS 数组传递给我的用户定义函数(使用标准 SQL)?
首先,一点上下文:
表架构:
id STRING
customer STRING
request STRUCT<
headers STRING
body STRING
url STRING
>
response STRUCT<
size INT64
body STRING
>
outgoing ARRAY<
STRUCT<
request STRUCT<
url STRING,
body STRING,
headers STRING
>,
response STRUCT<
size INT64,
body STRING
>
>
>
用户自定义函数:
CREATE TEMPORARY FUNCTION extractDetailed(
customer STRING,
request STRUCT<
headers STRING,
body STRING
>,
outgoing ARRAY<
STRUCT<
request STRUCT<url STRING>,
response STRUCT<body STRING>
>
>
)
RETURNS STRING
LANGUAGE js AS """
""";
SELECT extractDetailed(customer, STRUCT(request.headers, request.body), outgoing)
FROM request_logs
至于我的问题:我似乎无法弄清楚如何选择outgoing ARRAY 的一部分,并将其作为数组传递给用户定义的函数。
实际上,我正在尝试模拟以下用户定义的函数调用:
extractDetailed(
"customer id",
{ "headers": "", "body": "" },
[
{
"request": { "url": "" },
"response": { "body": "" }
},
{
"request": { "url": "" },
"response": { "body": "" }
}
]
);
我最近偶然发现了some documentation that might help 解锁它,我似乎无法弄清楚如何使它适合。我真的在为此苦苦挣扎,如果能帮助我解决这个问题,我将不胜感激。
【问题讨论】:
标签: google-bigquery