Tag: csv

无法从节点中的csv文件stream读取重音字符

开始。 我目前使用npm fast-csv这是一个很好的CSV阅读器/作家,是非常简单和直接。 Im试图做的是将这个与iconv一起使用来处理“accented”字符和非ASCII字符,并将它们转换为ASCII对等字符或根据字符来删除它们。 我当前的进程我做fast-csv是通过一个读取stream引入一个块进行处理(进来一行),暂停读取stream,处理数据,pipe道数据写入stream,然后恢复读stream使用callback。 Fast-csv目前知道根据从读入stream进入的数据的格式将块分离到哪里。 整个过程如下所示: var stream = fs.createReadStream(inputFileName); function csvPull(source) { csvWrite = csv.createWriteStream({ headers: true }); writableStream = fs.createWriteStream(outputFileName); csvStream = csv() .on("data", function (data) { csvStream.pause(); processRow(data, function () { csvStream.resume(); }); }) .on("end", function () { console.log('END OF CSV FILE'); }); csvWrite.pipe(writableStream); source.pipe(csvStream); } csvPull(stream); 我目前遇到的问题是,我注意到,由于某种原因,当我的JavaScript编译,它并不固有地识别非ASCII字符,所以我诉诸不得不使用npm iconv-lite来编码数据stream,因为它进入可用的东西。 然而,这提出了一个更大的问题,因为现在编码的数据,fast-csv将不再知道在哪里拆分块(行)。 由于我将要使用的CSV的大小,这是一个问题; […]

NodeJS读取和写入线程/工人的CSV

我目前有一个nodejs脚本,它从CSV文件中读取数据,然后根据每行数据写入许多不同的CSV文件。 有300个CSV(大约40Gbs价值)处理,所以我添加asynchronous到我的脚本读取和写入数据同时跨越所有内核。 async.mapLimit(filePaths, 4, streamZip, function (err, results) { console.log('finished'); }); 但事实certificate,这不是asynchronous。 这个代码实际上需要更多的时间来完成,而不是单独处理每个文件,因为它只使用单个核心。 似乎有许多不同的方式来使用更多的核心群集 , subprocess , networking工作者和工人农场 还有其他问题像这样问 但他们似乎都希望使用HTTP或Express,并作为服务器运行,或者他们调用像ls这样的外部程序。 而不是像在Python中那样运行一个多处理池。 任何人都可以提供一个例子或帮助如何使用线程或进程,并行读取多个CSV文件,并写入相同的fs.createWriteStreams? 谢谢 更多我的代码在这里: function streamZip(filePath, callback) { var stream = fs.createReadStream(filePath) .pipe(unzip.Parse()) .on('entry', function (entry) { var fileName = entry.path; entry.pipe(csvStream) }) var csvStream = csv() .on("data", function(data){ var identifier = data[0]; if (identifier […]

节点js – 将数据写入CSV文件

我正在尝试将传入的数据写入一个CSV文件。 我尝试使用http://csv.adaltas.com/generate/examples/ npm install csv 但我没有得到文件。 我只想保存一些数据到一个CSV文件。 但是即使这些例子都不起作用。 例如上面的链接中的示例(使用streamAPI)会引发以下错误消息: TypeError: Cannot read property 'eql' of undefined (首先,我必须改变需求path,安装完csv完整的包后,我不得不要求: var generate = require('csv/node_modules/csv-generate'); 显然,这个家伙使用相同的节点模块: https : //masteringmean.com/lessons/18-Writing-to-a-CSV-file-in-Nodejs 但我甚至无法让他的代码工作。 我认为它是用csv节点模块的一个较旧的(更好的文档?!)版本制作的。 谁能帮我? 也许有一些代码,解释相同的基本东西,如在masteringmean.com链接看到的,但最新的版本? 感谢任何提示。 干杯

最好/更好的方式来处理(过滤)BIG CSV文件?

我有很多GB的价值每个在〜3-4GB的未压缩CSV文件的数据。 我创build了一个stream函数,它扫描每个csv文件中某个列的值,如果是真的,则将其保存到单个输出文件(由每个input函数共享)。 我所看到的是,将它设置为通过26个文件(一年52个星期/一个季节2个)一次大约需要8-9000秒(约346秒一个文件)。 而当我运行一个单一的文件,我得到<200秒。 我在哪里创造70%的开销? 我的代码希望是不相关的,但是对于冗长:我正在使用名为“byline”的库来stream式传输文件。 很确定我的过滤是不理想的(特别是后来支持多个filter),但我目前只运行1个filter,应该是性能中立。 var fs = require('fs'); var byline = require('byline'); function readSkuData(afilename,col,value) { var stream = fs.createReadStream(afilename); stream = byline.createStream(stream); filters.push([col,value]); stream.on('data',function(line) { loaded = loaded + line.length; lineinfo = line.toString().split(","); if (!(lineFiltered(lineinfo,filters))) { filteredsize = filteredsize + 1; fs.appendFile('filteredData.csv',"\n" + line, function (err) { if (err) throw err;}); } […]

在大文件加载时将内存不足处理成mongo

我试图保存和parsing大的.csv文件,并保存在MongoDB中的数据,保持结果stringtypes。 所以我试图通过parsing器pipe道.csv文件数据,然后将数据写入MongoDB。 我试着将.csvparsing为一个json文件并使用mongoimport将其上传到MongoDB,但是这些值并没有保存为string,而且在使用mongoimport时不能设置值。 我也不想为节点设置内存,尽量使用尽可能less的内存。 我现在的问题是:程序耗尽内存并抛出: 致命错误:CALL_AND_RETRY_LAST分配失败 – 进程内存不足 var fs = require('fs'); var parse = require('csv-parse'); var async = require('async'); var queue, stream; var headers = fileData.subText.meta.fields; MongoClient.connect(url, function (err, db) { if (err) throw err; var collection = db.collection(fileData.collectionName); var parser = parse({columns: fileData.subText.meta.fields, delimiter: fileData.delimiter}); stream = fs.createReadStream("filepath" + fileData.name).pipe(parser); var data; queue […]

将UTF-8 csv文件转换为Excel可读的csv

我用node.js生成一个utf-8编码的csv,然后用双击在窗口上打开它。 Excel开始,但一些特殊的字符(如Ä,Ö,Ü,ä,ö,ü…)没有正确显示。 我认为这是由于错误的编码。 我保存了一个用excel创build的新csv。 我看到编码是Windows-1252。 我GOOGLE了很多,尝试了很多,但没有解决scheme。 我尝试使用https://github.com/mathiasbynens/windows-1252和https://github.com/kvz/phpjs/tree/master/functions/xml的组合 data = helper.utf8_encode(data); data = helper.utf8_decode(data); data = windows1252.encode(data); data = windows1252.decode(data); data = helper.utf8_encode(windows1252.encode(data)); data = helper.utf8_encode(windows1252.decode(data)); data = helper.utf8_decode(windows1252.encode(data)); data = helper.utf8_decode(windows1252.decode(data)); data = windows1252.encode(helper.utf8_encode(data)); data = windows1252.decode(helper.utf8_encode(data)); data = windows1252.encode(helper.utf8_decode(data)); data = windows1252.decode(helper.utf8_decode(data)); 但没有任何工作。 请帮帮我 更新:通过修补,我发现这些代码显示为希望的字符,但仍然缺lesslowercasedäöü。 有人有任何想法? \u0101 => Ä \u010D => Ä \u011D => […]

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

我有非常大的csv文件(370GB)。 我有足够的RAM(64 GB)在Windows 10上运行。 我认为以下是在我的系统上处理数据的最佳方法,但我不知道如何实现它的天气。 我想分解成4个不同的csv文件(因为我有四核心系统)。 然后处理不同核心上的每个文件(使用集群)。 处理后的结果应该合并为一个。 目前我正在使用以下代码来获取和处理数据: 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) […]

节点js不使用fast-csv库parsingcsv文件

我正在使用fast-csv节点库来parsing名为myFile.csv的csv文件。 代码如下所示: var csv = require("fast-csv"); var fs = require("fs"); var stream = fs.createReadStream('myFile.csv'); csv .fromStream(stream, {headers : true}) .on("data", function(data){ console.log("Start of parsing…"); console.log(data); }) .on("end", function(data){ console.log(data); console.log("End of parsing"); }) 当我运行它时,我在节点控制台中看到以下两行: 1 End of parsing 它不会打印“开始parsing…”或csv文件中的任何数据。 这可能是什么原因? 提前致谢!

在Node.js中使用fast-csv包读取和写入CSV

我正在尝试编写一个简单的节点程序,它读取一个csv文件,提取一列(比如说第二个)并将其写入另一个CSV文件。 我正在读取内容到一个数组,然后将该数组写入文件。 阶段和数据在每一步 input文件 123,456,789,abc def,ghi,232,jkl 排列 ['456','ghi'] 输出文件 4,5,6 g,h,i 输出需要 456 ghi 我只是错过了一个configuration,或者是我写数据错误的方式? END块中写入文件的代码块是否不正确? 这是我的代码 var fast_csv = require('fast-csv'); var tempArray=new Array(); console.log("START"); fast_csv.fromPath("inputfile.txt").on("data", function(data){ tempArray.push(data[1]); }) .on("end", function(){ tempArray.sort(); console.log(tempArray); fast_csv.writeToPath("outputfile.csv", tempArray) .on("finish", function(){ console.log("END"); }); });

csv表格到postgresql数据库与nodejs

嘿,我不能在nodejs中实现函数什么可以从csvparsing数据到postgresql表。 你能帮助解决这个问题吗? 我正在尝试使用csv-stream库,并可以在控制台中获取数据,但如何做一个导入postgresql不知道。 var csvStream = csv.createStream(options); fs.createReadStream(process.argv[2]).pipe(csvStream) .on('error', function (err) { console.error(err); }) .on('data', function (data) { // outputs an object containing a set of key/value pair representing a line found in the csv file. // console.log(data); }) .on('column', function (key, value) { // outputs the column name associated with the value found // […]