public AggregateOperator<IN> andSum (int field) { return this.and(Aggregations.SUM, field); }
public AggregateOperator<IN> andMin (int field) { return this.and(Aggregations.MIN, field); }
public AggregateOperator<IN> andMax (int field) { return this.and(Aggregations.MAX, field); }
@Test public void testAggregationTypes() { try { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); // should work: multiple aggregates tupleDs.aggregate(Aggregations.SUM, 0).and(Aggregations.MIN, 4); // should work: nested aggregates tupleDs.aggregate(Aggregations.MIN, 2).aggregate(Aggregations.SUM, 1); // should not work: average on string try { tupleDs.aggregate(Aggregations.SUM, 2); Assert.fail(); } catch (UnsupportedAggregationTypeException iae) { // we're good here } } catch (Exception e) { System.err.println(e.getMessage()); e.printStackTrace(); Assert.fail(e.getMessage()); } } }
@Test public void testFullAggregate() throws Exception { /* * Full Aggregate */ final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple3<Integer, Long, String>> ds = CollectionDataSets.get3TupleDataSet(env); DataSet<Tuple2<Integer, Long>> aggregateDs = ds .aggregate(Aggregations.SUM, 0) .and(Aggregations.MAX, 1) .project(0, 1); List<Tuple2<Integer, Long>> result = aggregateDs.collect(); String expected = "231,6\n"; compareResultAsTuples(result, expected); }
@Test public void testFullAggregateOfMutableValueTypes() throws Exception { /* * Full Aggregate of mutable value types */ final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple3<IntValue, LongValue, StringValue>> ds = ValueCollectionDataSets.get3TupleDataSet(env); DataSet<Tuple2<IntValue, LongValue>> aggregateDs = ds .aggregate(Aggregations.SUM, 0) .and(Aggregations.MAX, 1) .project(0, 1); List<Tuple2<IntValue, LongValue>> result = aggregateDs.collect(); String expected = "231,6\n"; compareResultAsTuples(result, expected); }
env.fromElements(new Tuple3<Double, StringValue, Long>(3.141592, new StringValue("foobar"), Long.valueOf(77))); initialData.groupBy(0).aggregate(Aggregations.MIN, 1).and(Aggregations.SUM, 2).output(new DiscardingOutputFormat<Tuple3<Double, StringValue, Long>>());
public AggregateOperator<IN> andSum (int field) { return this.and(Aggregations.SUM, field); }
public AggregateOperator<IN> andMax (int field) { return this.and(Aggregations.MAX, field); }
public AggregateOperator<IN> andMin (int field) { return this.and(Aggregations.MIN, field); }
public AggregateOperator<IN> andMin (int field) { return this.and(Aggregations.MIN, field); }
public AggregateOperator<IN> andMax (int field) { return this.and(Aggregations.MAX, field); }
public AggregateOperator<IN> andSum (int field) { return this.and(Aggregations.SUM, field); }
private void createAggregationOperation(OperationInfo info) throws IOException { DataSet op = (DataSet) sets.get(info.parentID); AggregateOperator ao = op.aggregate(info.aggregates[0].agg, info.aggregates[0].field); for (int x = 1; x < info.count; x++) { ao = ao.and(info.aggregates[x].agg, info.aggregates[x].field); } sets.put(info.setID, ao.name("Aggregation")); }