org.apache.sysds.runtime.transform.encode

## Class ColumnEncoderBin

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

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

    public class ColumnEncoderBin
    extends ColumnEncoder

See Also:
  Serialized Form

### Nested Class Summary

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

`ColumnEncoder.EncoderType`

### Field Summary

Fields
`static String` `MAX_PREFIX`
`static String` `MIN_PREFIX`
`static String` `NBINS_PREFIX`

### Constructor Summary

Constructors
Constructor and Description
`ColumnEncoderBin()`
`ColumnEncoderBin(int colID, int numBin)`
`ColumnEncoderBin(int colID, int numBin, double[] binMins, double[] binMaxs)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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).
`void` `computeBins(double min, double max)`
`double[]` `getBinMaxs()`
`double[]` `getBinMins()`
`double` `getColMaxs()`
`double` `getColMins()`
`FrameBlock` `getMetaData(FrameBlock meta)` Construct a frame block out of the transform meta data.
`List<Callable<Object>>` `getPartialBuildTasks(FrameBlock in, int blockSize)`
`void` `initMetaData(FrameBlock meta)` Sets up the required meta data for a subsequent call to apply.
`void` `mergeAt(ColumnEncoder other)` Merges another encoder, of a compatible type, in after a certain position.
`void` `mergeBuildPartial(List<Future<Object>> futurePartials, int start, int end)`
`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` `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, getColID, getColMapping, isApplicable, isApplicable, setColID, shiftCol, updateIndexRanges`

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

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### MIN_PREFIX

    public static final String MIN_PREFIX

See Also:
  Constant Field Values

#### MAX_PREFIX

    public static final String MAX_PREFIX

See Also:
  Constant Field Values

#### NBINS_PREFIX

    public static final String NBINS_PREFIX

See Also:
  Constant Field Values

### Constructor Detail

#### ColumnEncoderBin

    public ColumnEncoderBin()

#### ColumnEncoderBin

    public ColumnEncoderBin(int colID,
                            int numBin)

#### ColumnEncoderBin

    public ColumnEncoderBin(int colID,
                            int numBin,
                            double[] binMins,
                            double[] binMaxs)

### Method Detail

#### getColMins

    public double getColMins()

#### getColMaxs

    public double getColMaxs()

#### getBinMins

    public double[] getBinMins()

#### getBinMaxs

    public double[] getBinMaxs()

#### 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

#### getPartialBuildTasks

    public List<Callable<Object>> getPartialBuildTasks(FrameBlock in,
                                                       int blockSize)

Specified by:
  `getPartialBuildTasks` in class `ColumnEncoder`

#### mergeBuildPartial

    public void mergeBuildPartial(List<Future<Object>> futurePartials,
                                  int start,
                                  int end)
                           throws ExecutionException,
                                  InterruptedException

Specified by:
  `mergeBuildPartial` in class `ColumnEncoder`
Throws:
  `ExecutionException`
  `InterruptedException`

#### computeBins

    public void computeBins(double min,
                            double max)

#### 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`

#### 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

#### getMetaData

    public FrameBlock getMetaData(FrameBlock meta)

Description copied from interface: `Encoder`
Construct a frame block out of the transform meta data.

Parameters:
  `meta` - output frame block
Returns:
  output frame block?

#### initMetaData

    public void initMetaData(FrameBlock meta)

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

Parameters:
  `meta` - frame block

#### 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