Class SampleElementsForSplitPoints<T>

  • Type Parameters:
    T - the type of splits
    All Implemented Interfaces:
    Closeable, AutoCloseable, Input<Iterable<? extends Element>>, InputOutput<Iterable<? extends Element>,​List<T>>, MultiInput<Element>, Output<List<T>>, Operation

    public class SampleElementsForSplitPoints<T>
    extends Object
    implements Operation, InputOutput<Iterable<? extends Element>,​List<T>>, MultiInput<Element>

    The SampleElementsForSplitPoints operation is for sampling an Iterable of Elements and generating split points. The operation returns a List of the split points. The split points are normally UTF strings but this may differ for different Stores.

    By default, all elements in the iterable will used to generate splits. If you wish to only sample the iterable you can set the proportionToSample field to a value between 0 and 1.

    You can manually set the number of splits using the numSplits field. If you don't set it then the Gaffer Store should calculate a number of splits for you.

    If you want to only use the first few elements in the iterable then you can chain this operation after a Limit Operation.

    Depending on the Store you run this operation against there may be a limit to the number of elements you are allowed to include in the sample.

    See Also:
    SampleElementsForSplitPoints.Builder
    • Constructor Detail

      • SampleElementsForSplitPoints

        public SampleElementsForSplitPoints()
    • Method Detail

      • validate

        public uk.gov.gchq.koryphe.ValidationResult validate()
        Description copied from interface: Operation
        Validates an operation. This should be used to validate that fields have been be configured correctly. By default no validation is applied. Override this method to implement validation.
        Specified by:
        validate in interface Operation
        Returns:
        validation result.
      • shallowClone

        public SampleElementsForSplitPoints<T> shallowClone()
        Description copied from interface: Operation
        Operation implementations should ensure a ShallowClone method is implemented. Performs a shallow clone. Creates a new instance and copies the fields across. It does not clone the fields. If the operation contains nested operations, these must also be cloned.
        Specified by:
        shallowClone in interface Operation
        Returns:
        shallow clone
      • getOptions

        public Map<String,​String> getOptions()
        Specified by:
        getOptions in interface Operation
        Returns:
        the operation options. This may contain store specific options such as authorisation strings or and other properties required for the operation to be executed. Note these options will probably not be interpreted in the same way by every store implementation.
      • setOptions

        public void setOptions​(Map<String,​String> options)
        Specified by:
        setOptions in interface Operation
        Parameters:
        options - the operation options. This may contain store specific options such as authorisation strings or and other properties required for the operation to be executed. Note these options will probably not be interpreted in the same way by every store implementation.
      • getNumSplits

        public Integer getNumSplits()
      • setNumSplits

        public void setNumSplits​(Integer numSplits)
      • getProportionToSample

        public float getProportionToSample()
      • setProportionToSample

        public void setProportionToSample​(float proportionToSample)
      • getOutputTypeReference

        public com.fasterxml.jackson.core.type.TypeReference<List<T>> getOutputTypeReference()
        Specified by:
        getOutputTypeReference in interface Output<T>