Google bigquery google bigquery自定义项,用于jaro_winkle_距离
下面是计算jaro_winkle_距离的UDF代码 当使用json测试数据测试它时,它似乎可以工作,但当我尝试在google bigquery UI中调用它时,它始终给我零分。 即使使用自连接,例如 输入:Google bigquery google bigquery自定义项,用于jaro_winkle_距离,google-bigquery,Google Bigquery,下面是计算jaro_winkle_距离的UDF代码 当使用json测试数据测试它时,它似乎可以工作,但当我尝试在google bigquery UI中调用它时,它始终给我零分。 即使使用自连接,例如 输入: [ {a: "Liu",b:"Lau"}, {a: "John",b:"Jone"}] 输出: [ { "scr": 80 }, { "scr": 87 } ] SQL: 试试下面的方法。它按预期工作,结果如下 name1 name2 scr
[
{a: "Liu",b:"Lau"},
{a: "John",b:"Jone"}]
输出:
[
{
"scr": 80
},
{
"scr": 87
}
]
SQL:
试试下面的方法。它按预期工作,结果如下
name1 name2 scr
Liu Liu 100
John Jone 87
Liu Lau 80
希望您能够将其放回外部lib文件:o)
和取消注释
//jaro_winkler.distance = function(a, b) {
//return Math.round(weight*100)
并在注释中添加emit
jaro_winkler_distance=function(r, emit) {
emit(weight);
那你应该没事了 我尝试使用float64而不是int64,但它仍然不起作用。我们使用您给出的内联JavaScript示例,它起作用了。然而,我们尝试使用google存储并将javascript放在那里,而不是内联。看起来这样做是因为它要求emit-to-work-Error:ReferenceError:emit未在gs://kayama808/javascript/jaro\u winkler\u google\u UDF3.js第154行第4-5列定义。google bigquery上是否有在存储中使用javascript UDF的端到端示例。它在文档中显示了示例,但不包括JS代码。在测试工具中,它在javascript中使用emit。为什么谷歌不能直接使用JS UDF“原样”?我相信,测试工具是针对UDF的旧版本的-这是表值UDF-与标准中的标量UDF相比,我将使用lib进行检查/测试,但同时-您可以使用内联版本吗?还有我的jsbin来测试UDF JS代码。看起来不需要emit,正如您所说,为什么在测试工具中它将emit放在那里。
var a = r.a;
var b = r.b;
//jaro_winkler.distance = function(a, b) {
//return Math.round(weight*100)
jaro_winkler_distance=function(r, emit) {
emit(weight);