@Override public Dataset<Pair<KEY, OUT>> output(OutputHint... outputHints) { final Flow flow = left.getFlow(); final Join<LEFT, RIGHT, KEY, OUT, W> join = new Join<>( name, flow, left, right, leftKeyExtractor, rightKeyExtractor, keyClass, joinFunc, type, windowing, Sets.newHashSet(outputHints)); flow.add(join); return join.output(); } }
@Override public Dataset<Pair<KEY, OUT>> output(OutputHint... outputHints) { final Flow flow = left.getFlow(); final Join<LEFT, RIGHT, KEY, OUT, W> join = new Join<>( name, flow, left, right, leftKeyExtractor, rightKeyExtractor, keyClass, joinFunc, type, windowing, Sets.newHashSet(outputHints)); flow.add(join); return join.output(); } }
@Test public void testBuild() { Flow flow = Flow.create("TEST"); Dataset<String> left = Util.createMockDataset(flow, 2); Dataset<String> right = Util.createMockDataset(flow, 3); Dataset<Pair<Integer, String>> joined = Join.named("Join1") .of(left, right) .by(String::length, String::length) .using((String l, String r, Collector<String> c) -> { // no-op }) .output(); assertEquals(flow, joined.getFlow()); assertEquals(1, flow.size()); Join join = (Join) flow.operators().iterator().next(); assertEquals(flow, join.getFlow()); assertEquals("Join1", join.getName()); assertNotNull(join.leftKeyExtractor); assertNotNull(join.rightKeyExtractor); assertEquals(joined, join.output()); assertNull(join.getWindowing()); assertEquals(Join.Type.INNER, join.getType()); }
@Test public void testBuild_WithCounters() { Flow flow = Flow.create("TEST"); Dataset<String> left = Util.createMockDataset(flow, 2); Dataset<String> right = Util.createMockDataset(flow, 3); Dataset<Pair<Integer, String>> joined = Join.named("Join1") .of(left, right) .by(String::length, String::length) .using((String l, String r, Collector<String> c) -> { c.getCounter("my-counter").increment(); c.collect(l + r); }) .output(); assertEquals(flow, joined.getFlow()); assertEquals(1, flow.size()); Join join = (Join) flow.operators().iterator().next(); assertEquals(flow, join.getFlow()); assertEquals("Join1", join.getName()); assertNotNull(join.leftKeyExtractor); assertNotNull(join.rightKeyExtractor); assertEquals(joined, join.output()); assertNull(join.getWindowing()); assertEquals(Join.Type.INNER, join.getType()); }