org.apache.flink.api.java.operators.GroupCombineOperator Java Examples
The following examples show how to use
org.apache.flink.api.java.operators.GroupCombineOperator.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector5() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction3()) .withForwardedFields("4->0;3;3->1;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(0)); assertTrue(semProps.getForwardingSourceField(0, 0) == 6); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #2
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector7() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction4()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(0)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) == 2); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) < 0); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #3
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector6() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction3()) .withForwardedFields("4->0;3;3->1;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 7).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 7).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 8).contains(0)); assertTrue(semProps.getForwardingSourceField(0, 0) == 8); assertTrue(semProps.getForwardingSourceField(0, 1) == 7); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 7); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #4
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector5() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction3()) .withForwardedFields("4->0;3;3->1;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(0)); assertTrue(semProps.getForwardingSourceField(0, 0) == 6); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #5
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector4() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction2()) .withForwardedFields("0->4;1;1->3;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) == 4); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(4)); assertTrue(semProps.getReadFields(0).contains(7)); assertTrue(semProps.getReadFields(0).contains(8)); }
Example #6
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector3() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction2()) .withForwardedFields("0->4;1;1->3;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 3); assertTrue(semProps.getForwardingSourceField(0, 4) == 2); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(2)); assertTrue(semProps.getReadFields(0).contains(5)); assertTrue(semProps.getReadFields(0).contains(6)); }
Example #7
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector2() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction1()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) == 4); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(4)); assertTrue(semProps.getReadFields(0).contains(7)); assertTrue(semProps.getReadFields(0).contains(8)); }
Example #8
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector1() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction1()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 3); assertTrue(semProps.getForwardingSourceField(0, 4) == 2); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(2)); assertTrue(semProps.getReadFields(0).contains(5)); assertTrue(semProps.getReadFields(0).contains(6)); }
Example #9
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector7() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction4()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(0)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) == 2); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) < 0); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #10
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector6() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction3()) .withForwardedFields("4->0;3;3->1;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 7).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 7).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 8).contains(0)); assertTrue(semProps.getForwardingSourceField(0, 0) == 8); assertTrue(semProps.getForwardingSourceField(0, 1) == 7); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 7); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #11
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector4() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction2()) .withForwardedFields("0->4;1;1->3;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) == 4); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(4)); assertTrue(semProps.getReadFields(0).contains(7)); assertTrue(semProps.getReadFields(0).contains(8)); }
Example #12
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector3() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction2()) .withForwardedFields("0->4;1;1->3;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 3); assertTrue(semProps.getForwardingSourceField(0, 4) == 2); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(2)); assertTrue(semProps.getReadFields(0).contains(5)); assertTrue(semProps.getReadFields(0).contains(6)); }
Example #13
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector2() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction1()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) == 4); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(4)); assertTrue(semProps.getReadFields(0).contains(7)); assertTrue(semProps.getReadFields(0).contains(8)); }
Example #14
Source File: GroupCombineOperatorTest.java From flink with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector1() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction1()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 3); assertTrue(semProps.getForwardingSourceField(0, 4) == 2); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(2)); assertTrue(semProps.getReadFields(0).contains(5)); assertTrue(semProps.getReadFields(0).contains(6)); }
Example #15
Source File: GroupCombineOperatorTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector7() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction4()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(0)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) == 2); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) < 0); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #16
Source File: GroupCombineOperatorTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector6() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction3()) .withForwardedFields("4->0;3;3->1;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 7).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 7).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 8).contains(0)); assertTrue(semProps.getForwardingSourceField(0, 0) == 8); assertTrue(semProps.getForwardingSourceField(0, 1) == 7); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 7); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #17
Source File: GroupCombineOperatorTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector5() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction3()) .withForwardedFields("4->0;3;3->1;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(0)); assertTrue(semProps.getForwardingSourceField(0, 0) == 6); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) < 0); assertTrue(semProps.getReadFields(0) == null); }
Example #18
Source File: GroupCombineOperatorTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector4() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction2()) .withForwardedFields("0->4;1;1->3;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) == 4); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(4)); assertTrue(semProps.getReadFields(0).contains(7)); assertTrue(semProps.getReadFields(0).contains(8)); }
Example #19
Source File: GroupCombineOperatorTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector3() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction2()) .withForwardedFields("0->4;1;1->3;2"); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 3); assertTrue(semProps.getForwardingSourceField(0, 4) == 2); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(2)); assertTrue(semProps.getReadFields(0).contains(5)); assertTrue(semProps.getReadFields(0).contains(6)); }
Example #20
Source File: GroupCombineOperatorTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector2() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .sortGroup(new DummyTestKeySelector(), Order.ASCENDING) .combineGroup(new DummyGroupCombineFunction1()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 5).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 6).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 7).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 8).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 5); assertTrue(semProps.getForwardingSourceField(0, 2) == 6); assertTrue(semProps.getForwardingSourceField(0, 3) == 5); assertTrue(semProps.getForwardingSourceField(0, 4) == 4); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(4)); assertTrue(semProps.getReadFields(0).contains(7)); assertTrue(semProps.getReadFields(0).contains(8)); }
Example #21
Source File: GroupCombineOperatorTest.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
@Test public void testSemanticPropsWithKeySelector1() { final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<Tuple5<Integer, Long, String, Long, Integer>> tupleDs = env.fromCollection(emptyTupleData, tupleTypeInfo); GroupCombineOperator<Tuple5<Integer, Long, String, Long, Integer>, Tuple5<Integer, Long, String, Long, Integer>> combineOp = tupleDs.groupBy(new DummyTestKeySelector()) .combineGroup(new DummyGroupCombineFunction1()); SemanticProperties semProps = combineOp.getSemanticProperties(); assertTrue(semProps.getForwardingTargetFields(0, 0).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 1).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 2).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 2).contains(4)); assertTrue(semProps.getForwardingTargetFields(0, 3).size() == 2); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(1)); assertTrue(semProps.getForwardingTargetFields(0, 3).contains(3)); assertTrue(semProps.getForwardingTargetFields(0, 4).size() == 1); assertTrue(semProps.getForwardingTargetFields(0, 4).contains(2)); assertTrue(semProps.getForwardingTargetFields(0, 5).size() == 0); assertTrue(semProps.getForwardingTargetFields(0, 6).size() == 0); assertTrue(semProps.getForwardingSourceField(0, 0) < 0); assertTrue(semProps.getForwardingSourceField(0, 1) == 3); assertTrue(semProps.getForwardingSourceField(0, 2) == 4); assertTrue(semProps.getForwardingSourceField(0, 3) == 3); assertTrue(semProps.getForwardingSourceField(0, 4) == 2); assertTrue(semProps.getReadFields(0).size() == 3); assertTrue(semProps.getReadFields(0).contains(2)); assertTrue(semProps.getReadFields(0).contains(5)); assertTrue(semProps.getReadFields(0).contains(6)); }
Example #22
Source File: FlinkBatchTransformTranslators.java From beam with Apache License 2.0 | 4 votes |
@Override public void translateNode( PTransform<PCollection<KV<K, InputT>>, PCollection<KV<K, Iterable<InputT>>>> transform, FlinkBatchTranslationContext context) { // for now, this is copied from the Combine.PerKey translator. Once we have the new runner API // we can replace GroupByKey by a Combine.PerKey with the Concatenate CombineFn DataSet<WindowedValue<KV<K, InputT>>> inputDataSet = context.getInputDataSet(context.getInput(transform)); Combine.CombineFn<InputT, List<InputT>, List<InputT>> combineFn = new Concatenate<>(); KvCoder<K, InputT> inputCoder = (KvCoder<K, InputT>) context.getInput(transform).getCoder(); Coder<List<InputT>> accumulatorCoder; try { accumulatorCoder = combineFn.getAccumulatorCoder( context.getInput(transform).getPipeline().getCoderRegistry(), inputCoder.getValueCoder()); } catch (CannotProvideCoderException e) { throw new RuntimeException(e); } WindowingStrategy<?, ?> windowingStrategy = context.getInput(transform).getWindowingStrategy(); TypeInformation<WindowedValue<KV<K, List<InputT>>>> partialReduceTypeInfo = new CoderTypeInformation<>( WindowedValue.getFullCoder( KvCoder.of(inputCoder.getKeyCoder(), accumulatorCoder), windowingStrategy.getWindowFn().windowCoder())); Grouping<WindowedValue<KV<K, InputT>>> inputGrouping = inputDataSet.groupBy(new KvKeySelector<>(inputCoder.getKeyCoder())); @SuppressWarnings("unchecked") WindowingStrategy<Object, BoundedWindow> boundedStrategy = (WindowingStrategy<Object, BoundedWindow>) windowingStrategy; FlinkPartialReduceFunction<K, InputT, List<InputT>, ?> partialReduceFunction = new FlinkPartialReduceFunction<>( combineFn, boundedStrategy, Collections.emptyMap(), context.getPipelineOptions()); FlinkReduceFunction<K, List<InputT>, List<InputT>, ?> reduceFunction = new FlinkReduceFunction<>( combineFn, boundedStrategy, Collections.emptyMap(), context.getPipelineOptions()); // Partially GroupReduce the values into the intermediate format AccumT (combine) String fullName = getCurrentTransformName(context); GroupCombineOperator<WindowedValue<KV<K, InputT>>, WindowedValue<KV<K, List<InputT>>>> groupCombine = new GroupCombineOperator<>( inputGrouping, partialReduceTypeInfo, partialReduceFunction, "GroupCombine: " + fullName); Grouping<WindowedValue<KV<K, List<InputT>>>> intermediateGrouping = groupCombine.groupBy(new KvKeySelector<>(inputCoder.getKeyCoder())); // Fully reduce the values and create output format VO GroupReduceOperator<WindowedValue<KV<K, List<InputT>>>, WindowedValue<KV<K, List<InputT>>>> outputDataSet = new GroupReduceOperator<>( intermediateGrouping, partialReduceTypeInfo, reduceFunction, fullName); context.setOutputDataSet(context.getOutput(transform), outputDataSet); }
Example #23
Source File: FlinkBatchTransformTranslators.java From flink-dataflow with Apache License 2.0 | 4 votes |
@Override public void translateNode(Combine.PerKey<K, VI, VO> transform, FlinkBatchTranslationContext context) { DataSet<KV<K, VI>> inputDataSet = context.getInputDataSet(context.getInput(transform)); @SuppressWarnings("unchecked") Combine.KeyedCombineFn<K, VI, VA, VO> keyedCombineFn = (Combine.KeyedCombineFn<K, VI, VA, VO>) transform.getFn(); KvCoder<K, VI> inputCoder = (KvCoder<K, VI>) context.getInput(transform).getCoder(); Coder<VA> accumulatorCoder = null; try { accumulatorCoder = keyedCombineFn.getAccumulatorCoder(context.getInput(transform).getPipeline().getCoderRegistry(), inputCoder.getKeyCoder(), inputCoder.getValueCoder()); } catch (CannotProvideCoderException e) { e.printStackTrace(); // TODO } TypeInformation<KV<K, VI>> kvCoderTypeInformation = new KvCoderTypeInformation<>(inputCoder); TypeInformation<KV<K, VA>> partialReduceTypeInfo = new KvCoderTypeInformation<>(KvCoder.of(inputCoder.getKeyCoder(), accumulatorCoder)); Grouping<KV<K, VI>> inputGrouping = new UnsortedGrouping<>(inputDataSet, new Keys.ExpressionKeys<>(new String[]{"key"}, kvCoderTypeInformation)); FlinkPartialReduceFunction<K, VI, VA> partialReduceFunction = new FlinkPartialReduceFunction<>(keyedCombineFn); // Partially GroupReduce the values into the intermediate format VA (combine) GroupCombineOperator<KV<K, VI>, KV<K, VA>> groupCombine = new GroupCombineOperator<>(inputGrouping, partialReduceTypeInfo, partialReduceFunction, "GroupCombine: " + transform.getName()); // Reduce fully to VO GroupReduceFunction<KV<K, VA>, KV<K, VO>> reduceFunction = new FlinkReduceFunction<>(keyedCombineFn); TypeInformation<KV<K, VO>> reduceTypeInfo = context.getTypeInfo(context.getOutput(transform)); Grouping<KV<K, VA>> intermediateGrouping = new UnsortedGrouping<>(groupCombine, new Keys.ExpressionKeys<>(new String[]{"key"}, groupCombine.getType())); // Fully reduce the values and create output format VO GroupReduceOperator<KV<K, VA>, KV<K, VO>> outputDataSet = new GroupReduceOperator<>(intermediateGrouping, reduceTypeInfo, reduceFunction, transform.getName()); context.setOutputDataSet(context.getOutput(transform), outputDataSet); }
Example #24
Source File: DataSet.java From Flink-CEPplus with Apache License 2.0 | 3 votes |
/** * Applies a GroupCombineFunction on a non-grouped {@link DataSet}. * A CombineFunction is similar to a GroupReduceFunction but does not perform a full data exchange. Instead, the * CombineFunction calls the combine method once per partition for combining a group of results. This * operator is suitable for combining values into an intermediate format before doing a proper groupReduce where * the data is shuffled across the node for further reduction. The GroupReduce operator can also be supplied with * a combiner by implementing the RichGroupReduce function. The combine method of the RichGroupReduce function * demands input and output type to be the same. The CombineFunction, on the other side, can have an arbitrary * output type. * @param combiner The GroupCombineFunction that is applied on the DataSet. * @return A GroupCombineOperator which represents the combined DataSet. */ public <R> GroupCombineOperator<T, R> combineGroup(GroupCombineFunction<T, R> combiner) { if (combiner == null) { throw new NullPointerException("GroupCombine function must not be null."); } String callLocation = Utils.getCallLocationName(); TypeInformation<R> resultType = TypeExtractor.getGroupCombineReturnTypes(combiner, getType(), callLocation, true); return new GroupCombineOperator<>(this, resultType, clean(combiner), callLocation); }
Example #25
Source File: DataSet.java From flink with Apache License 2.0 | 3 votes |
/** * Applies a GroupCombineFunction on a non-grouped {@link DataSet}. * A CombineFunction is similar to a GroupReduceFunction but does not perform a full data exchange. Instead, the * CombineFunction calls the combine method once per partition for combining a group of results. This * operator is suitable for combining values into an intermediate format before doing a proper groupReduce where * the data is shuffled across the node for further reduction. The GroupReduce operator can also be supplied with * a combiner by implementing the RichGroupReduce function. The combine method of the RichGroupReduce function * demands input and output type to be the same. The CombineFunction, on the other side, can have an arbitrary * output type. * @param combiner The GroupCombineFunction that is applied on the DataSet. * @return A GroupCombineOperator which represents the combined DataSet. */ public <R> GroupCombineOperator<T, R> combineGroup(GroupCombineFunction<T, R> combiner) { if (combiner == null) { throw new NullPointerException("GroupCombine function must not be null."); } String callLocation = Utils.getCallLocationName(); TypeInformation<R> resultType = TypeExtractor.getGroupCombineReturnTypes(combiner, getType(), callLocation, true); return new GroupCombineOperator<>(this, resultType, clean(combiner), callLocation); }
Example #26
Source File: DataSet.java From flink with Apache License 2.0 | 3 votes |
/** * Applies a GroupCombineFunction on a non-grouped {@link DataSet}. * A CombineFunction is similar to a GroupReduceFunction but does not perform a full data exchange. Instead, the * CombineFunction calls the combine method once per partition for combining a group of results. This * operator is suitable for combining values into an intermediate format before doing a proper groupReduce where * the data is shuffled across the node for further reduction. The GroupReduce operator can also be supplied with * a combiner by implementing the RichGroupReduce function. The combine method of the RichGroupReduce function * demands input and output type to be the same. The CombineFunction, on the other side, can have an arbitrary * output type. * @param combiner The GroupCombineFunction that is applied on the DataSet. * @return A GroupCombineOperator which represents the combined DataSet. */ public <R> GroupCombineOperator<T, R> combineGroup(GroupCombineFunction<T, R> combiner) { if (combiner == null) { throw new NullPointerException("GroupCombine function must not be null."); } String callLocation = Utils.getCallLocationName(); TypeInformation<R> resultType = TypeExtractor.getGroupCombineReturnTypes(combiner, getType(), callLocation, true); return new GroupCombineOperator<>(this, resultType, clean(combiner), callLocation); }