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));
}
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();
}
}
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();
}
}
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);
}
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());
}
}
Aggregations