【发布时间】:2017-02-14 02:22:34
【问题描述】:
我有一个表,其中包含用户的 uuid 和其他一些值。
另外,我在 BQ 中有以下 UDF 函数,它根据 MD5 和 crc32 值通过给定的 uuid 计算 user_group:
function GetGroup(uuid) {...
}
function getUserGroup(r, emit) {
emit ({group: GetGroup(String(r.uuid)), uuid: r.uuid
});
}
bigquery.defineFunction(
'get_group',
['uuid'],
[{'name': 'group', 'type': 'string'}, {'name': 'uuid', 'type': 'string'}],
getUserGroup);
因此,要提取用户价值,我需要执行以下操作:
SELECT
group,
uuid
FROM
get_group(
SELECT
uuid
FROM
[MY_TABLE] )
这不是很有用,因为我想在几个不同的表中为 uuid 提取相同的 user_group,并且我不想每次要使用它时都定义函数“get_group”。此外,如果我想要表中的所有字段,我需要将结果与原始表连接起来,或者在 UDF 中硬编码表模式。
有没有类似于 Big Query 中任何内置函数的便捷方式来使用 UDF?例如:
SELECT
uuid,
get_group(uuid)
FROM
[ANY_TABLE_WITH_UUID_FIELD]
【问题讨论】:
标签: google-bigquery user-defined-functions udf