Search in sources :

Example 46 with Tuple4

use of org.apache.flink.api.java.tuple.Tuple4 in project flink by apache.

the class SemanticPropertiesProjectionTest method testJoinProjectionSemProps2.

@Test
public void testJoinProjectionSemProps2() {
    ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    DataSet<Tuple4<Integer, Tuple3<String, Integer, Long>, Tuple2<Long, Long>, String>> tupleDs = env.fromCollection(emptyNestedTupleData, nestedTupleTypeInfo);
    tupleDs.join(tupleDs).where(0).equalTo(0).projectFirst(2, 0).projectSecond(1, 3).output(new DiscardingOutputFormat<Tuple>());
    Plan plan = env.createProgramPlan();
    GenericDataSinkBase<?> sink = plan.getDataSinks().iterator().next();
    InnerJoinOperatorBase<?, ?, ?, ?> projectJoinOperator = ((InnerJoinOperatorBase<?, ?, ?, ?>) sink.getInput());
    DualInputSemanticProperties props = projectJoinOperator.getSemanticProperties();
    assertEquals(1, props.getForwardingTargetFields(0, 0).size());
    assertNotNull(props.getForwardingTargetFields(0, 1));
    assertNotNull(props.getForwardingTargetFields(0, 2));
    assertNotNull(props.getForwardingTargetFields(0, 3));
    assertEquals(1, props.getForwardingTargetFields(0, 4).size());
    assertEquals(1, props.getForwardingTargetFields(0, 5).size());
    assertNotNull(props.getForwardingTargetFields(0, 6));
    assertEquals(0, props.getForwardingTargetFields(0, 1).size());
    assertEquals(0, props.getForwardingTargetFields(0, 2).size());
    assertEquals(0, props.getForwardingTargetFields(0, 3).size());
    assertEquals(0, props.getForwardingTargetFields(0, 6).size());
    assertNotNull(props.getForwardingTargetFields(1, 0));
    assertEquals(1, props.getForwardingTargetFields(1, 1).size());
    assertEquals(1, props.getForwardingTargetFields(1, 2).size());
    assertEquals(1, props.getForwardingTargetFields(1, 3).size());
    assertNotNull(props.getForwardingTargetFields(1, 4));
    assertNotNull(props.getForwardingTargetFields(1, 5));
    assertEquals(1, props.getForwardingTargetFields(1, 6).size());
    assertEquals(0, props.getForwardingTargetFields(1, 0).size());
    assertEquals(0, props.getForwardingTargetFields(1, 4).size());
    assertEquals(0, props.getForwardingTargetFields(1, 5).size());
    assertTrue(props.getForwardingTargetFields(0, 4).contains(0));
    assertTrue(props.getForwardingTargetFields(0, 5).contains(1));
    assertTrue(props.getForwardingTargetFields(0, 0).contains(2));
    assertTrue(props.getForwardingTargetFields(1, 1).contains(3));
    assertTrue(props.getForwardingTargetFields(1, 2).contains(4));
    assertTrue(props.getForwardingTargetFields(1, 3).contains(5));
    assertTrue(props.getForwardingTargetFields(1, 6).contains(6));
}
Also used : Tuple4(org.apache.flink.api.java.tuple.Tuple4) ExecutionEnvironment(org.apache.flink.api.java.ExecutionEnvironment) Plan(org.apache.flink.api.common.Plan) DualInputSemanticProperties(org.apache.flink.api.common.operators.DualInputSemanticProperties) Tuple(org.apache.flink.api.java.tuple.Tuple) Test(org.junit.Test)

Example 47 with Tuple4

use of org.apache.flink.api.java.tuple.Tuple4 in project flink by apache.

the class GroupingTest method testGroupSortByKeyExpression2.

@Test
public void testGroupSortByKeyExpression2() {
    final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    DataSet<Tuple4<Integer, Long, CustomType, Long[]>> tupleDs = env.fromCollection(tupleWithCustomData, tupleWithCustomInfo);
    // should work
    try {
        tupleDs.groupBy("f0").sortGroup("f2.myString", Order.ASCENDING);
    } catch (Exception e) {
        Assert.fail();
    }
}
Also used : Tuple4(org.apache.flink.api.java.tuple.Tuple4) ExecutionEnvironment(org.apache.flink.api.java.ExecutionEnvironment) InvalidProgramException(org.apache.flink.api.common.InvalidProgramException) Test(org.junit.Test)

Example 48 with Tuple4

use of org.apache.flink.api.java.tuple.Tuple4 in project flink by apache.

the class GroupingTest method testGroupSortByKeyExpression3.

@Test
public void testGroupSortByKeyExpression3() {
    final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    DataSet<Tuple4<Integer, Long, CustomType, Long[]>> tupleDs = env.fromCollection(tupleWithCustomData, tupleWithCustomInfo);
    // should work
    try {
        tupleDs.groupBy("f0").sortGroup("f2.myString", Order.ASCENDING).sortGroup("f1", Order.DESCENDING);
    } catch (Exception e) {
        Assert.fail();
    }
}
Also used : Tuple4(org.apache.flink.api.java.tuple.Tuple4) ExecutionEnvironment(org.apache.flink.api.java.ExecutionEnvironment) InvalidProgramException(org.apache.flink.api.common.InvalidProgramException) Test(org.junit.Test)

Example 49 with Tuple4

use of org.apache.flink.api.java.tuple.Tuple4 in project flink by apache.

the class GroupingTest method testGroupSortByKeyExpression5.

@Test(expected = InvalidProgramException.class)
public void testGroupSortByKeyExpression5() {
    final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    DataSet<Tuple4<Integer, Long, CustomType, Long[]>> tupleDs = env.fromCollection(tupleWithCustomData, tupleWithCustomInfo);
    // should not work
    tupleDs.groupBy("f0").sortGroup("f1", Order.ASCENDING).sortGroup("f2", Order.ASCENDING);
}
Also used : Tuple4(org.apache.flink.api.java.tuple.Tuple4) ExecutionEnvironment(org.apache.flink.api.java.ExecutionEnvironment) Test(org.junit.Test)

Example 50 with Tuple4

use of org.apache.flink.api.java.tuple.Tuple4 in project flink by apache.

the class GroupingTupleTranslationTest method testCustomPartitioningTupleGroupReduceSorted2.

@Test
public void testCustomPartitioningTupleGroupReduceSorted2() {
    try {
        ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
        DataSet<Tuple4<Integer, Integer, Integer, Integer>> data = env.fromElements(new Tuple4<Integer, Integer, Integer, Integer>(0, 0, 0, 0)).rebalance().setParallelism(4);
        data.groupBy(0).withPartitioner(new TestPartitionerInt()).sortGroup(1, Order.ASCENDING).sortGroup(2, Order.DESCENDING).reduceGroup(new IdentityGroupReducerCombinable<Tuple4<Integer, Integer, Integer, Integer>>()).output(new DiscardingOutputFormat<Tuple4<Integer, Integer, Integer, Integer>>());
        Plan p = env.createProgramPlan();
        OptimizedPlan op = compileNoStats(p);
        SinkPlanNode sink = op.getDataSinks().iterator().next();
        SingleInputPlanNode reducer = (SingleInputPlanNode) sink.getInput().getSource();
        SingleInputPlanNode combiner = (SingleInputPlanNode) reducer.getInput().getSource();
        assertEquals(ShipStrategyType.FORWARD, sink.getInput().getShipStrategy());
        assertEquals(ShipStrategyType.PARTITION_CUSTOM, reducer.getInput().getShipStrategy());
        assertEquals(ShipStrategyType.FORWARD, combiner.getInput().getShipStrategy());
    } catch (Exception e) {
        e.printStackTrace();
        fail(e.getMessage());
    }
}
Also used : ExecutionEnvironment(org.apache.flink.api.java.ExecutionEnvironment) Plan(org.apache.flink.api.common.Plan) OptimizedPlan(org.apache.flink.optimizer.plan.OptimizedPlan) InvalidProgramException(org.apache.flink.api.common.InvalidProgramException) OptimizedPlan(org.apache.flink.optimizer.plan.OptimizedPlan) Tuple4(org.apache.flink.api.java.tuple.Tuple4) SingleInputPlanNode(org.apache.flink.optimizer.plan.SingleInputPlanNode) IdentityGroupReducerCombinable(org.apache.flink.optimizer.testfunctions.IdentityGroupReducerCombinable) SinkPlanNode(org.apache.flink.optimizer.plan.SinkPlanNode) Test(org.junit.Test)

Aggregations

Tuple4 (org.apache.flink.api.java.tuple.Tuple4)57 Test (org.junit.Test)44 ExecutionEnvironment (org.apache.flink.api.java.ExecutionEnvironment)31 Tuple2 (org.apache.flink.api.java.tuple.Tuple2)21 StreamExecutionEnvironment (org.apache.flink.streaming.api.environment.StreamExecutionEnvironment)18 Configuration (org.apache.flink.configuration.Configuration)15 TimeWindow (org.apache.flink.streaming.api.windowing.windows.TimeWindow)15 Tuple (org.apache.flink.api.java.tuple.Tuple)13 InvalidProgramException (org.apache.flink.api.common.InvalidProgramException)12 IOException (java.io.IOException)11 MiniClusterResourceConfiguration (org.apache.flink.runtime.testutils.MiniClusterResourceConfiguration)9 FailingSource (org.apache.flink.test.checkpointing.utils.FailingSource)9 IntType (org.apache.flink.test.checkpointing.utils.IntType)9 ValidatingSink (org.apache.flink.test.checkpointing.utils.ValidatingSink)9 SuccessException (org.apache.flink.test.util.SuccessException)6 Plan (org.apache.flink.api.common.Plan)5 KeySelector (org.apache.flink.api.java.functions.KeySelector)5 ArrayList (java.util.ArrayList)3 DataSet (org.apache.flink.api.java.DataSet)3 Tuple3 (org.apache.flink.api.java.tuple.Tuple3)3