我正在使用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到表行”。有什么建议,我如何才能解决这个问题?
1条答案
按热度按时间k4emjkb11#
As per the documentation the template is meant to output only a single table row per message. Thanks – 大ドア東