Я хочу фильтровать данные CSV, используя NodeJS с графаной и Influxdb - PullRequest
0 голосов
/ 23 марта 2020
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...