nyc-bytes
Version:
A node.js module for working with NYC's BYTES of the BIG APPLE datasets.
33 lines (30 loc) • 891 B
JavaScript
const dataset = require('../datasets.json').Pluto;
const fs = require('fs');
const path = require('path');
const Dataset = require('./Dataset.js');
const parse = require('csv-parse');
const Transform = require('stream').Transform;
class Pluto extends Dataset {
constructor() {
super(dataset);
}
stream() {
super.stream();
const bblTransform = new Transform({
objectMode: true,
transform(chunk, encoding, done) {
chunk.BBL = parseInt(chunk.BBL || chunk.bbl).toString();
this.push(chunk);
done();
}
});
const filePath = path.resolve(this.path, this.dataset.files[0]);
const file = fs.createReadStream(filePath);
const parser = parse({
columns: (r) => { return r; },
cast: false
});
return file.pipe(parser).pipe(bblTransform);
}
}
module.exports = new Pluto();