org.apache.sysds.runtime.transform.encode

## Class ColumnEncoderComposite

- java.lang.Object
- - org.apache.sysds.runtime.transform.encode.ColumnEncoder
  - - org.apache.sysds.runtime.transform.encode.ColumnEncoderComposite

- All Implemented Interfaces:
    Externalizable, Serializable, Comparable<ColumnEncoder>, Encoder

      public class ColumnEncoderComposite
      extends ColumnEncoder

  Simple composite encoder that applies a list of encoders in specified order. By implementing the default encoder API it can be used as a drop-in replacement for any other encoder.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.sysds.runtime.transform.encode.ColumnEncoder

      `ColumnEncoder.EncoderType`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ColumnEncoderComposite()`
    `ColumnEncoderComposite(ColumnEncoder columnEncoder)`
    `ColumnEncoderComposite(List<ColumnEncoder> columnEncoders)`
    `ColumnEncoderComposite(List<ColumnEncoder> columnEncoders, FrameBlock meta)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addEncoder(ColumnEncoder other)`
    `MatrixBlock` | `apply(FrameBlock in, MatrixBlock out, int outputCol)` Apply the generated metadata to the FrameBlock and saved the result in out.
    `MatrixBlock` | `apply(FrameBlock in, MatrixBlock out, int outputCol, int rowStart, int blk)`
    `MatrixBlock` | `apply(MatrixBlock in, MatrixBlock out, int outputCol)`
    `MatrixBlock` | `apply(MatrixBlock in, MatrixBlock out, int outputCol, int rowStart, int blk)`
    `void` | `build(FrameBlock in)` Build the transform meta data for the given block input.
    `void` | `buildPartial(FrameBlock in)` Partial build of internal data structures (e.g., in distributed spark operations).
    `boolean` | `equals(Object o)`
    `List<DependencyTask<?>>` | `getApplyTasks(FrameBlock in, MatrixBlock out, int outputCol)`
    `List<DependencyTask<?>>` | `getApplyTasks(MatrixBlock in, MatrixBlock out, int outputCol)`
    `List<DependencyTask<?>>` | `getBuildTasks(FrameBlock in, int blockSize)`
    `<T extends ColumnEncoder> T` | `getEncoder(Class<T> type)`
    `List<ColumnEncoder>` | `getEncoders()`
    `FrameBlock` | `getMetaData(FrameBlock out)` Construct a frame block out of the transform meta data.
    `<T extends ColumnEncoder> boolean` | `hasEncoder(Class<T> type)`
    `int` | `hashCode()`
    `void` | `initMetaData(FrameBlock out)` Sets up the required meta data for a subsequent call to apply.
    `boolean` | `isEncoder(int colID, Class<?> type)`
    `void` | `mergeAt(ColumnEncoder other)` Merges another encoder, of a compatible type, in after a certain position.
    `void` | `prepareBuildPartial()` Allocates internal data structures for partial build.
    `void` | `readExternal(ObjectInput in)` Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd deserialization.
    `void` | `shiftCol(int columnOffset)`
    `String` | `toString()`
    `void` | `updateAllDCEncoders()`
    `void` | `updateIndexRanges(long[] beginDims, long[] endDims, int colOffset)` Update index-ranges to after encoding.
    `void` | `writeExternal(ObjectOutput out)` Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd serialization.

    - ### Methods inherited from class org.apache.sysds.runtime.transform.encode.ColumnEncoder

      `compareTo, getBuildTask, getColID, getColMapping, getPartialBuildTask, getPartialMergeBuildTask, isApplicable, isApplicable, setColID`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ColumnEncoderComposite

          public ColumnEncoderComposite()

    - #### ColumnEncoderComposite

          public ColumnEncoderComposite(List<ColumnEncoder> columnEncoders,
                                        FrameBlock meta)

    - #### ColumnEncoderComposite

          public ColumnEncoderComposite(List<ColumnEncoder> columnEncoders)

    - #### ColumnEncoderComposite

          public ColumnEncoderComposite(ColumnEncoder columnEncoder)

  - ### Method Detail

    - #### getEncoders

          public List<ColumnEncoder> getEncoders()

    - #### getEncoder

          public <T extends ColumnEncoder> T getEncoder(Class<T> type)

    - #### isEncoder

          public boolean isEncoder(int colID,
                                   Class<?> type)

    - #### build

          public void build(FrameBlock in)

      Description copied from interface: `Encoder`
      Build the transform meta data for the given block input. This call modifies and keeps meta data as encoder state.
      Parameters:
        `in` - input frame block

    - #### getApplyTasks

          public List<DependencyTask<?>> getApplyTasks(FrameBlock in,
                                                       MatrixBlock out,
                                                       int outputCol)

      Overrides:
        `getApplyTasks` in class `ColumnEncoder`

    - #### getApplyTasks

          public List<DependencyTask<?>> getApplyTasks(MatrixBlock in,
                                                       MatrixBlock out,
                                                       int outputCol)

      Overrides:
        `getApplyTasks` in class `ColumnEncoder`

    - #### getBuildTasks

          public List<DependencyTask<?>> getBuildTasks(FrameBlock in,
                                                       int blockSize)

      Overrides:
        `getBuildTasks` in class `ColumnEncoder`

    - #### prepareBuildPartial

          public void prepareBuildPartial()

      Description copied from class: `ColumnEncoder`
      Allocates internal data structures for partial build.
      Specified by:
        `prepareBuildPartial` in interface `Encoder`
      Overrides:
        `prepareBuildPartial` in class `ColumnEncoder`

    - #### buildPartial

          public void buildPartial(FrameBlock in)

      Description copied from class: `ColumnEncoder`
      Partial build of internal data structures (e.g., in distributed spark operations).
      Specified by:
        `buildPartial` in interface `Encoder`
      Overrides:
        `buildPartial` in class `ColumnEncoder`
      Parameters:
        `in` - input frame block

    - #### apply

          public MatrixBlock apply(FrameBlock in,
                                   MatrixBlock out,
                                   int outputCol)

      Description copied from interface: `Encoder`
      Apply the generated metadata to the FrameBlock and saved the result in out.
      Parameters:
        `in` - input frame block
        `out` - output matrix block
        `outputCol` - is a offset in the output matrix. column in FrameBlock + outputCol = column in out
      Returns:
        output matrix block

    - #### apply

          public MatrixBlock apply(MatrixBlock in,
                                   MatrixBlock out,
                                   int outputCol)

      Specified by:
        `apply` in class `ColumnEncoder`

    - #### apply

          public MatrixBlock apply(FrameBlock in,
                                   MatrixBlock out,
                                   int outputCol,
                                   int rowStart,
                                   int blk)

      Specified by:
        `apply` in class `ColumnEncoder`

    - #### apply

          public MatrixBlock apply(MatrixBlock in,
                                   MatrixBlock out,
                                   int outputCol,
                                   int rowStart,
                                   int blk)

      Specified by:
        `apply` in class `ColumnEncoder`

    - #### equals

          public boolean equals(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### mergeAt

          public void mergeAt(ColumnEncoder other)

      Description copied from class: `ColumnEncoder`
      Merges another encoder, of a compatible type, in after a certain position. Resizes as necessary. `ColumnEncoders` are compatible with themselves and `EncoderComposite` is compatible with every other `ColumnEncoders`. `MultiColumnEncoders` are compatible with every encoder
      Overrides:
        `mergeAt` in class `ColumnEncoder`
      Parameters:
        `other` - the encoder that should be merged in

    - #### updateAllDCEncoders

          public void updateAllDCEncoders()

    - #### addEncoder

          public void addEncoder(ColumnEncoder other)

    - #### updateIndexRanges

          public void updateIndexRanges(long[] beginDims,
                                        long[] endDims,
                                        int colOffset)

      Description copied from class: `ColumnEncoder`
      Update index-ranges to after encoding. Note that only Dummycoding changes the ranges.
      Specified by:
        `updateIndexRanges` in interface `Encoder`
      Overrides:
        `updateIndexRanges` in class `ColumnEncoder`
      Parameters:
        `beginDims` - begin dimensions of range
        `endDims` - end dimensions of range
        `colOffset` - is applied to begin and endDims

    - #### getMetaData

          public FrameBlock getMetaData(FrameBlock out)

      Description copied from interface: `Encoder`
      Construct a frame block out of the transform meta data.
      Parameters:
        `out` - output frame block
      Returns:
        output frame block?

    - #### initMetaData

          public void initMetaData(FrameBlock out)

      Description copied from interface: `Encoder`
      Sets up the required meta data for a subsequent call to apply.
      Parameters:
        `out` - frame block

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### writeExternal

          public void writeExternal(ObjectOutput out)
                             throws IOException

      Description copied from class: `ColumnEncoder`
      Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd serialization.
      Specified by:
        `writeExternal` in interface `Externalizable`
      Overrides:
        `writeExternal` in class `ColumnEncoder`
      Parameters:
        `out` - object output
      Throws:
        `IOException` - if IOException occurs

    - #### readExternal

          public void readExternal(ObjectInput in)
                            throws IOException

      Description copied from class: `ColumnEncoder`
      Redirects the default java serialization via externalizable to our default hadoop writable serialization for efficient broadcast/rdd deserialization.
      Specified by:
        `readExternal` in interface `Externalizable`
      Overrides:
        `readExternal` in class `ColumnEncoder`
      Parameters:
        `in` - object input
      Throws:
        `IOException` - if IOException occur

    - #### hasEncoder

          public <T extends ColumnEncoder> boolean hasEncoder(Class<T> type)

    - #### shiftCol

          public void shiftCol(int columnOffset)

      Overrides:
        `shiftCol` in class `ColumnEncoder`

Copyright © 2021 The Apache Software Foundation. All rights reserved.