Class FrequencySampler<T>

  • Type Parameters:
    T -

    public abstract class FrequencySampler<T>
    extends Sampler<T>
    Find the most frequent sample. A sample adds to the sum of its key ie

    add("x", 10); and add("x", 20); will result in "x" = 30

    This uses StreamSummary to only store the approximate cardinality (capacity) of keys. If the number of distinct keys exceed the capacity, the error of the sample may increase depending on distribution of keys among the total set.
    • Constructor Detail

      • FrequencySampler

        public FrequencySampler()
    • Method Detail

      • beginSampling

        public void beginSampling​(int capacity,
                                  int durationMillis)
        Start to record samples
        Specified by:
        beginSampling in class Sampler<T>
        Parameters:
        capacity - Number of sample items to keep in memory, the lower this is the less accurate results are. For best results use value close to cardinality, but understand the memory trade offs.
      • finishSampling

        public java.util.List<Sampler.Sample<T>> finishSampling​(int count)
        Call to stop collecting samples, and gather the results
        Specified by:
        finishSampling in class Sampler<T>
        Parameters:
        count - Number of most frequent items to return
      • insert

        protected void insert​(T item,
                              long value)
        Specified by:
        insert in class Sampler<T>
      • isEnabled

        public boolean isEnabled()
        Specified by:
        isEnabled in class Sampler<T>