com.google.cloud.dataflow.sdk.transforms

## Class Sample.FixedSizedSampleFn<T>

- java.lang.Object
- - com.google.cloud.dataflow.sdk.transforms.Combine.CombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>
  - - com.google.cloud.dataflow.sdk.transforms.Sample.FixedSizedSampleFn<T>

Type Parameters:
  `T` - the type of the elements

All Implemented Interfaces:
  CombineFnBase.GlobalCombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>, HasDisplayData, Serializable

Enclosing class:
  Sample

    public static class Sample.FixedSizedSampleFn<T>
    extends Combine.CombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>

`CombineFn` that computes a fixed-size sample of a collection of values.

See Also:
  Serialized Form

### Method Summary

All Methods Instance Methods Concrete Methods
`com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>` `addInput(com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>> accumulator, T input)` Adds the given input value to the given accumulator, returning the new accumulator value.
`com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>` `createAccumulator()` Returns a new, mutable accumulator value, representing the accumulation of zero input values.
`Iterable<T>` `extractOutput(com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>> accumulator)` Returns the output value that is the result of combining all the input values represented by the given accumulator.
`TypeVariable<?>` `getAccumTVariable()` Returns the `TypeVariable` of `AccumT`.
`Coder<com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>>` `getAccumulatorCoder(CoderRegistry registry, Coder<T> inputCoder)` Returns the `Coder` to use for accumulator `AccumT` values, or null if it is not able to be inferred.
`Coder<Iterable<T>>` `getDefaultOutputCoder(CoderRegistry registry, Coder<T> inputCoder)` Returns the `Coder` to use by default for output `OutputT` values, or null if it is not able to be inferred.
`String` `getIncompatibleGlobalWindowErrorMessage()` Returns the error message for not supported default values in Combine.globally().
`TypeVariable<?>` `getInputTVariable()` Returns the `TypeVariable` of `InputT`.
`TypeVariable<?>` `getOutputTVariable()` Returns the `TypeVariable` of `OutputT`.
`com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>` `mergeAccumulators(Iterable<com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>> accumulators)` Returns an accumulator representing the accumulation of all the input values accumulated in the merging accumulators.
`void` `populateDisplayData(DisplayData.Builder builder)` Register display data for the given transform or component.

### Methods inherited from class com.google.cloud.dataflow.sdk.transforms.Combine.CombineFn

`apply, asKeyedFn, compact, defaultValue, getOutputType`

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

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

### Method Detail

#### createAccumulator

    public com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>> createAccumulator()

Description copied from class: `Combine.CombineFn`
Returns a new, mutable accumulator value, representing the accumulation of zero input values.

Specified by:
  `createAccumulator` in class `Combine.CombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>`

#### addInput

    public com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>> addInput(com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>> accumulator,
                                                                                                                                  T input)

Description copied from class: `Combine.CombineFn`
Adds the given input value to the given accumulator, returning the new accumulator value.

For efficiency, the input accumulator may be modified and returned.

Specified by:
  `addInput` in class `Combine.CombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>`

#### mergeAccumulators

    public com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>> mergeAccumulators(Iterable<com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>> accumulators)

Description copied from class: `Combine.CombineFn`
Returns an accumulator representing the accumulation of all the input values accumulated in the merging accumulators.

May modify any of the argument accumulators. May return a fresh accumulator, or may return one of the (modified) argument accumulators.

Specified by:
  `mergeAccumulators` in class `Combine.CombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>`

#### extractOutput

    public Iterable<T> extractOutput(com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>> accumulator)

Description copied from class: `Combine.CombineFn`
Returns the output value that is the result of combining all the input values represented by the given accumulator.

Specified by:
  `extractOutput` in class `Combine.CombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>`

#### getAccumulatorCoder

    public Coder<com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>> getAccumulatorCoder(CoderRegistry registry,
                                                                                                                                                    Coder<T> inputCoder)

Description copied from interface: `CombineFnBase.GlobalCombineFn`
Returns the `Coder` to use for accumulator `AccumT` values, or null if it is not able to be inferred.

By default, uses the knowledge of the `Coder` being used for `InputT` values and the enclosing `Pipeline`'s `CoderRegistry` to try to infer the Coder for `AccumT` values.

This is the Coder used to send data through a communication-intensive shuffle step, so a compact and efficient representation may have significant performance benefits.

Specified by:
  `getAccumulatorCoder` in interface `CombineFnBase.GlobalCombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>`

#### getDefaultOutputCoder

    public Coder<Iterable<T>> getDefaultOutputCoder(CoderRegistry registry,
                                                    Coder<T> inputCoder)

Description copied from interface: `CombineFnBase.GlobalCombineFn`
Returns the `Coder` to use by default for output `OutputT` values, or null if it is not able to be inferred.

By default, uses the knowledge of the `Coder` being used for input `InputT` values and the enclosing `Pipeline`'s `CoderRegistry` to try to infer the Coder for `OutputT` values.

Specified by:
  `getDefaultOutputCoder` in interface `CombineFnBase.GlobalCombineFn<T,com.google.cloud.dataflow.sdk.transforms.Top.BoundedHeap<KV<Integer,T>,SerializableComparator<KV<Integer,T>>>,Iterable<T>>`

#### populateDisplayData

    public void populateDisplayData(DisplayData.Builder builder)

Register display data for the given transform or component.

`populateDisplayData(DisplayData.Builder)` is invoked by Pipeline runners to collect display data via `DisplayData.from(HasDisplayData)`. Implementations may call `super.populateDisplayData(builder)` in order to register display data in the current namespace, but should otherwise use `subcomponent.populateDisplayData(builder)` to use the namespace of the subcomponent.

By default, does not register any display data. Implementors may override this method to provide their own display data.

Specified by:
  `populateDisplayData` in interface `HasDisplayData`
Parameters:
  `builder` - The builder to populate with display data.
See Also:
  `HasDisplayData`

#### getIncompatibleGlobalWindowErrorMessage

    public String getIncompatibleGlobalWindowErrorMessage()

Description copied from interface: `CombineFnBase.GlobalCombineFn`
Returns the error message for not supported default values in Combine.globally().

Specified by:
  `getIncompatibleGlobalWindowErrorMessage` in interface `CombineFnBase.GlobalCombineFn<InputT,AccumT,OutputT>`

#### getInputTVariable

    public TypeVariable<?> getInputTVariable()

Returns the `TypeVariable` of `InputT`.

#### getAccumTVariable

    public TypeVariable<?> getAccumTVariable()

Returns the `TypeVariable` of `AccumT`.

#### getOutputTVariable

    public TypeVariable<?> getOutputTVariable()

Returns the `TypeVariable` of `OutputT`.