将文本字符串转换为Google BigQuery TableSchema

时间:2018-02-23 13:24:08

标签: google-apps-script google-bigquery

我一直在努力尝试使用我从文本构建的架构生成Google BigQuery表。

我在脚本中定义架构没有问题,如下所示: var fl = {fields:[{name:'issue_id',type:'STRING'},.....} 然后将其指定为 schema:fl

我想要做的是使用数组作为字段列表的输入(例如 name,type ),并将此列表动态构建到表模式中。我可以在文本(简单的字符串构建)中执行此操作但我不能使用文本字符串作为模式 - 它显示为null。

可能有一个非常简单的解决方案,但我还没有找到它。如果可能的话,它需要避免任何附加组件。

特定代码信息

这是表定义,需要架构。

var table = {
  tableReference: {
    projectId: projectId,
    datasetId: datasetId,
    tableId: tableId
  },
  schema: fl
};

如果我将 fl 定义如下,我没有问题。我正在使用预期的语法,一切正常。

var fl = {fields: [{name: 'issue_id', type: 'STRING'},{name: 'internal_issue_id', type: 'STRING'}] };

但是,如果我将 fl 定义如下( fs 是一个数组并且我正在连接此数组中的文本),我最终将fl作为字符串,这在这里不起作用。

var fl = "{fields: ["
while (countRow<numRows) {
  fl = fieldList + "{name: '" + fs[countRow][0] + "', type: '" + fs[countRow][1] + "'},";
  countRow=countRow+1
}
fl = fl.substring(0,fl.length-1) + "] }"

该字符串看起来与最初定义的变量完全相同,但当然是一个字符串,所以我并不希望它在没有某种转换的情况下工作 - 就像日期字符串通常需要转换才能在日期计算中使用。目前它对表定义显示为null。

我确信我不是第一个想要这样做的人,希望有一个简单的解决方案。

0 个答案:

没有答案