@Test public void testBuildMerge() { Tap sourceLower = getPlatform().getTextFile( "file1" ); Tap sourceUpper = getPlatform().getTextFile( "file2" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); Tap sink = getPlatform().getTextFile( "outpath", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter ); Pipe splice = new GroupBy( "merge", Pipe.pipes( pipeLower, pipeUpper ), new Fields( "num" ), null, false ); Flow flow = getPlatform().getFlowConnector().connect( sources, sink, splice ); }
@Test public void testBuildMergeFail() { Tap sourceLower = getPlatform().getTextFile( "file1" ); Tap sourceUpper = getPlatform().getTextFile( "file2" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter1 = new RegexSplitter( new Fields( "num", "foo" ), " " ); Function splitter2 = new RegexSplitter( new Fields( "num", "bar" ), " " ); Tap sink = getPlatform().getTextFile( "outpath", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter1 ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter2 ); Pipe splice = new GroupBy( "merge", Pipe.pipes( pipeLower, pipeUpper ), new Fields( "num" ), null, false ); try { Flow flow = getPlatform().getFlowConnector().connect( sources, sink, splice ); fail( "did not fail on mismatched field names" ); } catch( Exception exception ) { // test passes } } }
@Test public void testBuildMergeFail() { Tap sourceLower = getPlatform().getTextFile( "file1" ); Tap sourceUpper = getPlatform().getTextFile( "file2" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter1 = new RegexSplitter( new Fields( "num", "foo" ), " " ); Function splitter2 = new RegexSplitter( new Fields( "num", "bar" ), " " ); Tap sink = getPlatform().getTextFile( "outpath", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter1 ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter2 ); Pipe splice = new GroupBy( "merge", Pipe.pipes( pipeLower, pipeUpper ), new Fields( "num" ), null, false ); try { Flow flow = getPlatform().getFlowConnector().connect( sources, sink, splice ); fail( "did not fail on mismatched field names" ); } catch( Exception exception ) { // test passes } } }
@Test public void testBuildMerge() { Tap sourceLower = getPlatform().getTextFile( "file1" ); Tap sourceUpper = getPlatform().getTextFile( "file2" ); Map sources = new HashMap(); sources.put( "lower", sourceLower ); sources.put( "upper", sourceUpper ); Function splitter = new RegexSplitter( new Fields( "num", "char" ), " " ); Tap sink = getPlatform().getTextFile( "outpath", SinkMode.REPLACE ); Pipe pipeLower = new Each( new Pipe( "lower" ), new Fields( "line" ), splitter ); Pipe pipeUpper = new Each( new Pipe( "upper" ), new Fields( "line" ), splitter ); Pipe splice = new GroupBy( "merge", Pipe.pipes( pipeLower, pipeUpper ), new Fields( "num" ), null, false ); Flow flow = getPlatform().getFlowConnector().connect( sources, sink, splice ); }