package com.github.lwhite1.tablesaw.examples; import com.github.lwhite1.tablesaw.api.DateTimeColumn; import com.github.lwhite1.tablesaw.api.LongColumn; import com.github.lwhite1.tablesaw.api.Table; import it.unimi.dsi.fastutil.floats.FloatArrayList; import static com.github.lwhite1.tablesaw.api.QueryHelper.*; /** * Usage example using a Tornado dataset */ public class ServiceExample { public static void main(String[] args) throws Exception { Table ops = Table.create("data/operations.csv"); out(ops.structure().print()); out(ops.print()); DateTimeColumn start = ops.dateColumn("Date").atTime(ops.timeColumn("Start")); DateTimeColumn end = ops.dateColumn("Date").atTime(ops.timeColumn("End")); for (int row : ops) { if (ops.timeColumn("End").get(row).isBefore(ops.timeColumn("Start").get(row))) { end.get(row).plusDays(1); } } // Calc duration LongColumn duration = start.differenceInSeconds(end); ops.addColumn(duration); duration.setName("Duration"); out(ops.print()); Table q2_429_assembly = ops.selectWhere( allOf (column("date").isInQ2(), (column("SKU").startsWith("429")), (column("Operation").isEqualTo("Assembly")))); Table durationByFacilityAndShift = q2_429_assembly.median("Duration").by("Facility", "Shift"); // TODO(lwhite): We need a top() method that can be used to return the top table rows FloatArrayList tops = durationByFacilityAndShift.floatColumn("Median").top(5); out(durationByFacilityAndShift.print()); durationByFacilityAndShift.exportToCsv("/tmp/durationByFacilityAndShift.csv"); } private static void out(Object obj) { System.out.println(String.valueOf(obj)); } private static void out() { System.out.println(""); } }