在另一个问题https://stackoverflow.com/a/36145155/2259571中发布了一个代码示例,它定义了内联的Javascript UDF函数,而不是在BigQuery UI UDF编辑器中,而不是在bq命令行--udf_resource选项中,而是直接从SQL查询的文本。
在BigQuery文档中,我可以找到有关如何完成此操作的更多信息?
JS(...)看起来像一个函数,但我在https://cloud.google.com/bigquery/query-reference的文档中找不到它我在https://cloud.google.com/bigquery/user-defined-functions中找不到关于这个构造的任何内容我是否只是错过了它?还是没有证件?
以下是查询的简化版本(在BigQuery UI和bq命令行工具中运行):
SELECT outputA
FROM JS(
// input table
(
SELECT text2 as inputA
FROM
(SELECT 'mikhail' AS text2),
(SELECT 'mike' AS text2),
(SELECT 'michael' AS text2),
(SELECT 'javier' AS text2),
(SELECT 'thomas' AS text2)
)
// input columns
, inputA
// output schema
, "[{name: 'outputA', type:'string'}]"
// function
, "function(r, emit) {
emit({
outputA: 'XX ' + r.inputA + ' XX'
});
}"
)
输出:
outputA
XX mikhail XX
XX mike XX
XX michael XX
XX javier XX
XX thomas XX
答案 0 :(得分:2)
我现在看到你在找什么 看起来这在google bigquery文档中不可用
但是你得到的例子 - 几乎为你提供了这种用途的结构 - 没有遗漏任何东西 - 其他一切都在你已经知道的链接中 - https://cloud.google.com/bigquery/user-defined-functions - 并且仍然适用,只有你需要
就个人而言 - 我已经从下面的链接(只有少数几个)了解了inline js udf
相对很久以前的事情
http://www.slideshare.net/BigDataSpain/thomas-park-hands-on-with-big-query-javascript-udfs-bigdataspain-2014
https://www.youtube.com/watch?v=6TYA6hy44Jo
https://www.youtube.com/watch?v=GrD7ymUPt3M(转到28分钟以上)
答案 1 :(得分:2)
内联JS语法是“alpha”语法,故意不记录。我们目前没有计划删除或更改此功能,但它也不是官方支持的功能。
我们计划在将来的某个时候为内联JS UDF提供官方支持,但语法略有不同。
如果您想使用此功能,尽管有上述警告,请参阅Mikhail的回答。