【问题标题】:Query with UDF in web UI在 Web UI 中使用 UDF 进行查询
【发布时间】:2017-01-14 02:47:46
【问题描述】:

我试图在网络大查询 UI 中使用用户定义的查询。根据文档https://cloud.google.com/bigquery/sql-reference/user-defined-functions,我一步一步地做到了这一点。

  1. 取消选中使用旧版 SQL 复选框。
  2. 在查询编辑器中输入

以下代码与https://cloud.google.com/bigquery/sql-reference/user-defined-functions相同

CREATE TEMPORARY FUNCTION timesTwo(x INT64)
RETURNS INT64
  LANGUAGE js AS """
  return x*2;
""";

3。在 UDF 语句下方,键入您的查询。

SELECT timesTwo(numbers) as doubles
FROM UNNEST([1, 2, 3, 4, 5]) AS numbers;

然后我点击了运行查询,但给了我这样的错误

Not Implemented: UDFs are currently only supported for legacy SQL queries.

是因为旧的 SQL 选项吗?但我没有按照文件上的说明取消选中它。

【问题讨论】:

  • 确保“UDF 编辑器”文本框中没有任何内容。即将推出的 UI 更新将在未选中“使用旧版 SQL”时将其删除。还要注意文档中关于 INT64 的警告——由于 JavaScript 的限制,除了作为十进制字符串之外,没有办法无损地表示 INT64。我们正在进行一项更改,以表明 FLOAT64 是传递数字作为输入的首选方式。

标签: mysql sql-server google-bigquery


【解决方案1】:

标量 UDF(在标准中更多)是查询的“一部分”,因此所有都需要放入查询编辑器(此处不需要 UDF 编辑器)

CREATE TEMPORARY FUNCTION timesTwo(x INT64)
RETURNS INT64
  LANGUAGE js AS """
  return x*2;
""";
SELECT timesTwo(numbers) as doubles
FROM UNNEST([1, 2, 3, 4, 5]) AS numbers;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多