Class AvroBulkWriter<T>

  • All Implemented Interfaces:
    BulkWriter<T>

    public class AvroBulkWriter<T>
    extends Object
    implements BulkWriter<T>
    A simple BulkWriter implementation that wraps an Avro DataFileWriter.
    • Constructor Detail

      • AvroBulkWriter

        public AvroBulkWriter​(org.apache.avro.file.DataFileWriter<T> dataFileWriter)
        Create a new AvroBulkWriter wrapping the given Avro DataFileWriter.
        Parameters:
        dataFileWriter - The underlying Avro writer.
    • Method Detail

      • addElement

        public void addElement​(T element)
                        throws IOException
        Description copied from interface: BulkWriter
        Adds an element to the encoder. The encoder may temporarily buffer the element, or immediately write it to the stream.

        It may be that adding this element fills up an internal buffer and causes the encoding and flushing of a batch of internally buffered elements.

        Specified by:
        addElement in interface BulkWriter<T>
        Parameters:
        element - The element to add.
        Throws:
        IOException - Thrown, if the element cannot be added to the encoder, or if the output stream throws an exception.
      • flush

        public void flush()
                   throws IOException
        Description copied from interface: BulkWriter
        Flushes all intermediate buffered data to the output stream. It is expected that flushing often may reduce the efficiency of the encoding.
        Specified by:
        flush in interface BulkWriter<T>
        Throws:
        IOException - Thrown if the encoder cannot be flushed, or if the output stream throws an exception.
      • finish

        public void finish()
                    throws IOException
        Description copied from interface: BulkWriter
        Finishes the writing. This must flush all internal buffer, finish encoding, and write footers.

        The writer is not expected to handle any more records via BulkWriter.addElement(Object) after this method is called.

        Important: This method MUST NOT close the stream that the writer writes to. Closing the stream is expected to happen through the invoker of this method afterwards.

        Specified by:
        finish in interface BulkWriter<T>
        Throws:
        IOException - Thrown if the finalization fails.