let fs = require('fs');
let http = require('http');
let csvPath = process.argv[2];
let csvContent = fs.readFileSync(csvPath).toString('utf8');
let lines = csvContent.split('\n');
lines.shift();
let orders = [];
for (let line of lines) {
let columns = line.split(",");
let orderID = columns[1];
let PaymentType = columns[3];
if (!orders[orderID]) {
orders[orderID] = {
id: orderID,
events: []
};
}
orders[orderID].events.push(PaymentType)
}
let orderCount = Object.keys(orders).length;
let successfullOrders = Object.keys(orders).filter(function(orderID) {
let order = orders[orderID];
return order.events.includes("Product1");
});
saveMeasurement("orders", {
count: orderCount,
success: successfullOrders.length,
measure: orders.count
})
function saveMeasurement(name, fields) {
let propertyList = Object.keys(fields);
let listOfFormatedFields = propertyList.map((name) => `${name}=${fields[name]}`);
let strinOfFormatedFields = listOfFormatedFields.join(",");
let post_data = `${name} ${strinOfFormatedFields}`;
let post_options = {
host: 'localhost',
port: '8086',
path: '/write?db=test',
method: 'POST',
headers: {
'Content_Length' : Buffer.byteLength(post_data)
}
};
let post_req = http.request(post_options, function(res) {
if (res.statusCode ==204) {
console.log("writing event count successfull!!")
}
});
post_req.write(post_data)
post_req.end();
}
В выводе я получаю только 4,
Я хочу отфильтровать этот CSV-файл с отметкой времени и отфильтровать данные без значения. как я могу это сделать ?
У меня стабильная связь с Графеном и создана база данных о притоках.
как я могу отфильтровать данные? например, сумма подошв и фильтр, сколько заплатили с MasterCard.
(CSV - просто дурачок, чтобы учиться для меня) Файл CSV:
Transaction_date,Product,Price,Payment_Type,Name,City,State,Country,Account_Created,Last_Login,Latitude,Longitude
1/2/09 6:17,Product1,1200,Mastercard,carolina,Basildon,England,United Kingdom,1/2/09 6:00,1/2/09
6:08,51.5,-1.11666671/2/09 4:53,Product1,1200,Visa,Betina,Parkville,MO,United States,1/2/09 4:42,1/2/09 7:49,39.195,-94.68194