如何破解大型的csv文件,在多核上进行处理,并将结果合并为一个使用nodeJs的结果

我有非常大的csv文件(370GB)。 我有足够的RAM(64 GB)在Windows 10上运行。

我认为以下是在我的系统上处理数据的最佳方法,但我不知道如何实现它的天气。

  1. 我想分解成4个不同的csv文件(因为我有四核心系统)。
  2. 然后处理不同核心上的每个文件(使用集群)。
  3. 处理后的结果应该合并为一个。

目前我正在使用以下代码来获取和处理数据:

var fs = require('fs'), util = require('util'), stream = require('stream'), es = require('event-stream'), path = require("path"); var dir = path.join(__dirname,'./ttwe.csv'); var lineNr = 0; var s = fs.createReadStream('AIR_Pre_Processed_Data_For_EDA_16th_June_2016.csv') .pipe(es.split()) .pipe(es.mapSync(function(line){ // find /v /c "" AIR_Pre_Processed_Data_For_EDA_16th_June_2016.csv (command to get totel no of line which gives 37931757) s.pause(); lineNr += 1; let ttp=line.split("^")[1].replace(/_," "); if(ttp !='NA' && ttp !='undefined' && ttp !=''){ fs.appendFile(dir,ttp+",\n"); } process.stdout.write('\u001B[2J\u001B[0;0f'); console.log(lineNr," of 37931757 Lines: ",parseInt((lineNr/37931757)*100),"%"); s.resume(); }) .on('error', function(e){ console.log('Error while reading file.',e); }) .on('end', function(){ console.log('Read entire file.') }) ); 

Interesting Posts