0
1.4GBのcsvファイルがあります。これは行単位で処理し、各行を解析したいものです。各行が解析されたら、その行をストリームに追加し、出力をtsvファイルとして書き込みます。私は以下のコードがうまくいったと思っていましたが、期待通りに改行せずに前の行の最後に各行を追加するだけです。私はまた、.pipe(writeStream)
の前に行に.pipe(split2())
を追加しようとしましたが、書き込む前にデータを分割していましたが、単純にアプリケーションをフリーズしました。ノードCSV、変換、ストリームからTSVへのストリーム
誰もこのノードでこのプロセスを正常に読み書きしていますか?私は単に,
に分割する代わりに、優れたCSVパーサを逃すだけでなく、各data
文字列の末尾に\n
を加えることに気づいた
var fs = require('fs'),
_ = require('lodash'),
split2 = require('split2'),
through2 = require('through2');
fs.createReadStream('input_file_name.csv')
.pipe(split2())
.pipe(through2.obj(function (chunk, enc, callback) {
// Process the CSV row
var row = _.zipObject(['header1', 'header2', 'header3'], chunk.toString().split(','));
this.push(processRow(row).join('\t')); // does an action to each row
callback()
}))
.pipe(fs.createWriteStream('output_file_name.tsv'));