0

我在 Apps Script 中编写了一个自定义函数,该函数使用函数参数构造查询,并调用提供查询的 BigQuery 服务(我使用 API 密钥启用了该服务)。但是当我在电子表格中使用该函数时,它总是返回服务器错误。

error: We're sorry, a server error occurred. Please wait a bit and try again.

这是我的代码(当我通过手动提供变量在调试器中运行它时它可以工作):

function GetAge(first_name, last_name) {
  var select_text = "SELECT first_name, last_name, age FROM Testing.FullNames WHERE ";
  var filter_text = "first_name = '" + first_name + "' AND last_name= '" + last_name + "' ";
  var group_text = "GROUP BY 1,2;";
  var query_text = select_text + filter_text + group_text;

  var query = {'query': query_text};
  var response = BigQuery.Jobs.query('<My Project Id>', query);

  var value = response.getRows()[0].getF()[2].getV();

  return value;
}
4

3 回答 3

1

v2 API 已启用?首次尝试运行时,是否提示您完成 OAuth 流程?

注意 - 一旦你克服了这个初始错误,你就需要改变你的查询参数。查询调用只需要一个字符串作为第二个参数:

var response = BigQuery.Jobs.query('project_id', query_text);
于 2012-06-01T17:20:02.643 回答
1

BigQuery 服务 v2beta1 目前仅限于部分受信任的测试人员。如果您改为使用 v2 版本(需要字符串查询),它应该可以工作。

于 2012-06-04T14:32:52.450 回答
0

这里有一个关于如何从 Google Apps 脚本调用 BigQuery API 的教程。

于 2012-07-26T00:48:20.530 回答