All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.acesinc.data.binner.DataBinner Maven / Gradle / Ivy

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package net.acesinc.data.binner;

import java.util.Arrays;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 *
 * @author andrewserff
 */
public class DataBinner {

    private static Logger log = LoggerFactory.getLogger(DataBinner.class);

    public static void main(String[] args) {
        String data = "{\"test\": \"test123\", \"myDate\": \"2012-04-23T18:25:43.511Z\",\"airSpeed\": 456.5,\"freq\":132.4, \"myInt\":1002, \"bigFreq\":455332.4, \"point\":[45.0, 45.0], \"pointObj\":{\"x\": 88.2, \"y\": -99.3},\"pointObj2\":{\"lat\": 88.2, \"lon\": -99.3}, \"car\": {\"make\": \"Subaru\",\"model\": \"Impreza WRX\"}}";

        Binner date = new DateBinner("date", "myDate", DateGranularity.MSEC);
        Binner freq = new NumericBinner("freq", 10);
        Binner test = new LiteralBinner("test");
        Binner geo = new GeoTileBinner("geo", "point", 17);
        
        List binners = Arrays.asList(
                test,
                date,
                freq,
                new NumericBinner("airSpeed", 10),
                new NumericBinner("myInt", 10),
                new NumericBinner("bigFreq", 10),
                geo,
                new GeoTileBinner("geoObj", "pointObj", 10, "x", "y"),
                new GeoTileBinner("geoObj2", "pointObj2")
        );

//        binners.stream().forEach((b) -> {
//            List bins = b.generateBinNames(data);
//            for (String bin : bins) {
//                log.info("Bin [ " + bin + " ]");
//            }
//        });

        MergedBinner b = new MergedBinner(Arrays.asList(date,geo,freq, new NumericBinner("myInt", 10)));
        List bins = b.generateBinNames(data);
        for (String bin : bins) {
            log.info("Bin [ " + bin + " ]");
        }
        MergedBinner b2 = new MergedBinner(Arrays.asList(date,freq));
        List bins2 = b2.generateBinNames(data);
        for (String bin : bins2) {
            log.info("Bin [ " + bin + " ]");
        }
        
        Binner dateBinner = new DateBinner("date", "myDate", DateGranularity.MIN);
        Binner modelBinner = new LiteralBinner("car.model");

        Binner mergedBinner = new MergedBinner(Arrays.asList(dateBinner, modelBinner));

        bins = mergedBinner.generateBinNames(data);
        for (String bin : bins) {
            log.info("Bin [ " + bin + " ]");
        } 

    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy