Articles of csv

快速有效地创buildCSV文件报告,而不会减慢node.js服务器的速度

我有一个Node.js快速API,托pipe在一个Azure应用服务上,提供来自SQL服务器数据库的数据。 一个新的要求是根据可定制的数据导出报告。 这些应该是即时生成的CSV文件。 我面临的问题是,在某些情况下,CSV文件将会非常大(可能是50万行)。 我不难创build这些文件,然后将它们上传到Blob存储,或者直接将它们提供给用户。 但是,正如你可以想象的那样,这将花费一些负载在服务器上。 这个API每分钟提供约500个Post / Get请求。 Node的单线程特性意味着当有人请求类似的CSV文件时,服务器将抓取。 我需要一些build议,而不是做什么。 我的想法是启动一个新的应用程序,在一个新的服务器上(可能是一个用ASP.NET编写的),负责创buildCSV文件。 它公开一个接收参数来创build文件的结束点,然后用文件或链接进行响应。 但是,因为它是一个单独的服务器(如果我做了类似于.NET的单独线程),它在等待响应时不会降低节点服务器的速度。 这看起来好像很多工作。 有什么简单的吗? 我对任何可以直接连接到SQL数据库并生成报告的服务开放(所以我可以把它给客户端,而不是定制的报告,我需要硬编码)。

CSV-parse npm库,返回“列数不一致”

我想用csv-parseparsing一个csv文件。 此时,如果在文件的第一行没有标题,我可以parsing带有标题的文件。 所以例如我的文件是这样的: Item1;Item2:Item3 Test1;Test2;Test3 但我需要能够跳过第一行,因为实际的数据是这样的: This is a file with items Items are stored below: Item1;Item2:Item3 Test1;Test2;Test3 所以我需要跳过第一行。 csv-parse可以使用from:选项执行此操作。 但是,当我使用它会返回一个列数不一致的错误。 这是真的,因为前几行是文本,所以只有一列。 但是当我以例如:4作为选项设置时,csv-parse不会占用前几行。 我的代码: var fs = require('fs'); var parse = require('csv-parse'); var parser = parse({delimiter: ';', from: 2}, function(err, data){ if(err){ return console.log(err); } var keys = data.shift(); var objects = data.map(function(values) { return […]

如何将spark rdd保存到csv文件

我有一个要求检索cassandra表数据并将其保存到文件系统(Linux文件系统)。 该文件不应该分裂成多个节点,它应该创build在一个单一的节点。 我们有四个以spark模式运行的节点(datastax)cassandra集群。 dse版本:5.0.1 Spark版本:1.6.1 这里是我的示例代码: val sc = new SparkContext(conf) val sqlContext1 = new CassandraSQLContext(sc); sqlContext1.setKeyspace("KeyspaceName"); val results = sqlContext1.sql("SELECT * FROM KeyspaceName.TableName"); results.collect().foreach(println); 现在结果RDD。 需要在一个节点上保存到本地文件系统(linux)。 我跟着一些博客,但没有工作。 有人可以指导解决这个问题吗?

节点CSVparsing器输出问题

我正在尝试使用Node CSVparsing器从我的Mongo数据库中读取查询结果,并将其写入到csv文件中。 当我运行我的脚本,我得到一个csv文件,第一行有两个[对象]条目,其他一切都是空白的。 这是我的代码: // node samples/sample.js var csv = require('csv'); var mongoose = require('mongoose'); var User = require('../models/userModel').User; dsn = "mongodb://localhost/test"; mongoose.connect(dsn); console.log ("here"); var users = User.find({}, function(err, result){ console.log(result); }); var columns = ['userName','agencyName','email','password','id']; csv() .from(users, { columns: true }) .toPath(__dirname+'/users.csv',{ columns: ['userName','agencyName','email','password','id'] }) .transform(function(data){ data.unshift(data.pop()); return data; }) .on('data',function(data,index){ console.log('#'+index+' '+JSON.stringify(data)); […]

node.js如何在从stream中导入数据库后同步最终callback

这听起来像一个非常典型的用例如Q或async库,但我真的不知道什么是最好的方式来做到这一点。 我想用150行(使用node-csv )导入CSV文件,并为每行创build一个mongo文档。 然而,streamparsing看起来比“db插入”更快,所以我遇到了callback被调用得太早的问题。 // importtest.mocha.js […] importer.loadFromCsv (url, function(result) { result.length.should.be.equal (150); // nope, it's always around 41 } // importer.js function loadFromCsv (url, callback){ csv().from.stream(url) .on ('record', function(record, index){ new Row({data: record}).save(function() { console.log ('saved a row to db'); }); }) .on ('end', function() { callback (Row.find({})); // E parser finished, but probably […]

用CSV写节点js的匹配行

我正在与node js婴儿的步骤。 第一个任务,逐行阅读一个分隔的文件,并吐出包含string“imputed”的行。 #!/usr/bin/env node var Csv = require("csv"), Fs = require("fs"); var foods = "/../data/sr26"; Csv() .from.stream( Fs.createReadStream(__dirname + foods + "/SRC_CD.txt"), {"delimiter": "^", "quote": "~"} ) .to(function(data, count) { console.log(data); }) .transform(function(row, index, callback) { //if (row[1].search(/imputed/) != -1) { process.nextTick(function() { callback( null, row[1].substr(0, 15) + "… " + row[1].search(/imputed/) + "\n" […]

Node.js + Bluebird + csv:额外项目

我有下面的代码下载CSV文件: function download_csv(symbol) { var req_url = url + '&s=' + symbol var filename = '/prices/' + symbol + '.csv' return request.getAsync(req_url) .then(function(resp) { fs.writeFileAsync(filename, resp) }) } Promise.map(symbols, download_csv, {concurrency: 128}) .error(function(e) {console.error('error ocurred: ', e.message)}) .done(function() {console.log('done')}) 当我打开csv文件时,第一行右移1列: [object Object] Date Open High Low Close Volume Adj Close 第一列应该说Date,而不是[object Object]。 我的代码中有什么错误?

如何使用Node-Express统计CSV文件的行数

我需要计算一个CSV文件的行数。 如果文件是空的,我想写列名作为第一行,然后我需要login的信息。 任何build议如何做到这一点?

fast-csv正在抛出exception:期望列标题不匹配

我正在尝试使用fast-csvvalidation数据。 我的代码看起来像 var fileName = req.files.uploadcsv.path; var fs = require("fs"); var stream = fs.createReadStream(fileName); var csv = require("fast-csv"); csv .fromStream(stream, { headers: true }) .validate(function(data) { if (data.age > 18) return false; else return true; } } 它工作正常,我上传的每个文件,但如果我上传文件与额外的数据,它说错误:意外的错误:预期列标题不匹配:5列得到:6其实文件有5个标题,但它包含的数据集有6个logging。 我想赶上这个错误,以便我可以指出用户错误。 请build议。

如何从node.js程序运行Excel VBA?

我在Excel中有一个VBA代码做一些格式。 Excel由node.js创build 是否有可能通过node.js代码在Excel中运行该代码?