我有一个大的 JSON 文件,我想稍微转换一下并将其作为新表发送到 Google BigQuery。我过去在node.js中使用过流,效果很好,我认为这是解决这个问题的一个不错的解决方案。我正在使用官方 Google node.js BigQuery API。我能够毫无问题地创建具有正确架构的表。我想我已经准备好了解决方案。程序完成得很好,但最终没有数据到达我的 BigQuery 表中。
相关代码如下
我的 Node.js 流代码:
fs.createReadStream('testfile.json')
.pipe(require('split')())
.pipe(require('event-stream').mapSync((data) => {
if (data.length > 1) {
let obj;
try {
obj = JSON.parse('{' + (data[data.length - 1] === ',' ? data.slice(0, data.length - 1) : data) + '}');
} catch (e) {
console.error('error parsing!', e, data);
}
let user = Object.keys(obj)[0];
let company = obj[user][0];
let item = {
user: user,
company: company
};
console.log(item);
return JSON.stringify(item); …
Run Code Online (Sandbox Code Playgroud)