@Override public TupleEntryCollector openForWrite(FlowProcess<Properties> flowProcess, Object output) throws IOException { return new TupleEntrySchemeCollector<Properties, Object>(flowProcess, getScheme(), output); }
@Override protected TupleEntrySchemeCollector createTupleEntrySchemeCollector( FlowProcess<? extends Configuration> flowProcess, Tap parent, String path, long sequence ) throws IOException { TapOutputCollector outputCollector = new TapOutputCollector( flowProcess, parent, path, sequence ); return new TupleEntrySchemeCollector<Configuration, OutputCollector>( flowProcess, parent, outputCollector ); }
@Override public TupleEntryCollector openForWrite( FlowProcess<? extends Properties> flowProcess, OutputStream output ) throws IOException { return new TupleEntrySchemeCollector<Properties, OutputStream>( flowProcess, this, getScheme(), System.err ); }
@Override public TupleEntryCollector openForWrite( FlowProcess<? extends Properties> flowProcess, OutputStream output ) throws IOException { return new TupleEntrySchemeCollector<Properties, OutputStream>( flowProcess, this, getScheme(), System.out ); }
@Override public TupleEntryCollector openForWrite(FlowProcess<Properties> flowProcess, Object output) throws IOException { return new TupleEntrySchemeCollector<Properties, Object>(flowProcess, getScheme(), output); }
@Override protected TupleEntrySchemeCollector createTupleEntrySchemeCollector( FlowProcess<? extends Configuration> flowProcess, Tap parent, String path, long sequence ) throws IOException { TapOutputCollector outputCollector = new TapOutputCollector( flowProcess, parent, path, sequence ); return new TupleEntrySchemeCollector<Configuration, OutputCollector>( flowProcess, parent, outputCollector ); }
@Override public TupleEntryCollector openForWrite(FlowProcess<Properties> flowProcess, OutputStream output) throws IOException { if (output == null) { // wrap tuple entry to indicate when an entry has finished return new TupleEntrySchemeCollector<Properties, OutputStream>(flowProcess, getScheme(), handler, getIdentifier()) { @Override protected void collect(TupleEntry tupleEntry) throws IOException { super.collect(tupleEntry); handler.endMessage(); } }; } return new TupleEntrySchemeCollector<Properties, OutputStream>(flowProcess, getScheme(), output, getIdentifier()); }
@Override protected TupleEntrySchemeCollector createTupleEntrySchemeCollector( FlowProcess<? extends Properties> flowProcess, Tap parent, String path, long sequence ) throws IOException { if( sequence != -1 && flowProcess.getConfig() != null ) ( (LocalFlowProcess) FlowProcessWrapper.undelegate( flowProcess ) ).getConfig().setProperty( PART_NUM_PROPERTY, Long.toString( sequence ) ); if( parent instanceof TapWith ) return (TupleEntrySchemeCollector) ( (TapWith) parent ) .withChildIdentifier( path ) .withSinkMode( SinkMode.UPDATE ) .asTap().openForWrite( flowProcess ); TapFileOutputStream output = new TapFileOutputStream( parent, path, true ); // always append return new TupleEntrySchemeCollector<Properties, OutputStream>( flowProcess, parent, output ); }
@Override public TupleEntryCollector openForWrite( FlowProcess<? extends Properties> flowProcess, OutputStream output ) throws IOException { if( output == null ) output = new TapFileOutputStream( getOutputIdentifier( flowProcess ), isUpdate() ); // append if we are in update mode return new TupleEntrySchemeCollector<Properties, OutputStream>( flowProcess, this, getScheme(), output, getIdentifier() ); }