Map<String, Tap> sources = new HashMap<String, Tap>();
sources.put("s1", source1);
sources.put("s2", source2);
Pipe s1 = new Pipe("s1");
s1 = new Retain(s1, new Fields("key", "num"));
Pipe s2 = new Pipe("s2");
s2 = new Retain(s2, new Fields("key", "num1", "num2"));
Pipe results = new MultiGroupBy(s1, new Fields("key"), s2, new Fields("key"),
new Fields("key-rename"), new CustomBuffer(new Fields("result")));
CascadingUtil.get().getFlowConnector().connect(sources, sink, results).complete();