在将数据流传输到BigQuery的数据流作业期间,无法将json序列化到表行

8yparm6h  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(131)

我正在使用Dataflow Job模板将数据从发布/订阅流传输到BigQuery。我需要从每个JSON文件转换值并一次将多个表行输出到BQ表。到达发布/订阅的JSON消息的简化版本如下所示:

{"a":{"k1":v1, "k2":v2}, "b":{"k1":v1, "k2":v2}...}

转换后的JSON应该如下所示:

[{"k1":v1, "k2":v2}, {"k1":v1, "k2":v2}...]

这是我创建的UDF的简化形式:

function transformToTableRows(inJson) {
  var input = JSON.parse(inJson);
  var output = [];
  for (var elem in input) {
    output.push({"k1": input[elem].k1, "k2": input[elem].k2})
  }
  return JSON.stringify(output);
}

不幸的是,这将不起作用,并将记录错误“未能序列化json到表行”。有什么建议,我如何才能解决这个问题?

k4emjkb1

k4emjkb11#

As per the documentation the template is meant to output only a single table row per message. Thanks – 大ドア東

相关问题