Packages

c

com.twitter.algebird

SetSizeAggregator

case class SetSizeAggregator[A](hllBits: Int, maxSetSize: Int = 10)(implicit toBytes: (A) => Array[Byte]) extends SetSizeAggregatorBase[A] with Product with Serializable

Linear Supertypes
Product, Equals, SetSizeAggregatorBase[A], EventuallyMonoidAggregator[A, HLL, Set[A], Long], MonoidAggregator[A, Either[HLL, Set[A]], Long], AbstractEventuallyAggregator[A, HLL, Set[A], Long], Aggregator[A, Either[HLL, Set[A]], Long], Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SetSizeAggregator
  2. Product
  3. Equals
  4. SetSizeAggregatorBase
  5. EventuallyMonoidAggregator
  6. MonoidAggregator
  7. AbstractEventuallyAggregator
  8. Aggregator
  9. Serializable
  10. AnyRef
  11. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new SetSizeAggregator(hllBits: Int, maxSetSize: Int = 10)(implicit toBytes: (A) => Array[Byte])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def andThenPresent[D](present2: (Long) => D): MonoidAggregator[A, Either[HLL, Set[A]], D]

    Like calling andThen on the present function

    Like calling andThen on the present function

    Definition Classes
    MonoidAggregatorAggregator
  5. def append(l: Either[HLL, Set[A]], r: A): Either[HLL, Set[A]]
    Definition Classes
    Aggregator
  6. def appendAll(items: TraversableOnce[A]): Either[HLL, Set[A]]
    Definition Classes
    MonoidAggregator
  7. def appendAll(old: Either[HLL, Set[A]], items: TraversableOnce[A]): Either[HLL, Set[A]]
    Definition Classes
    Aggregator
  8. def apply(inputs: TraversableOnce[A]): Long

    This may error if inputs are empty (for Monoid Aggregators it never will, instead you see present(Monoid.zero[B])

    This may error if inputs are empty (for Monoid Aggregators it never will, instead you see present(Monoid.zero[B])

    Definition Classes
    Aggregator
  9. def applyCumulatively[In <: TraversableOnce[A], Out](inputs: In)(implicit bf: CanBuildFrom[In, Long, Out]): Out

    This returns the cumulative sum of its inputs, in the same order.

    This returns the cumulative sum of its inputs, in the same order. If the inputs are empty, the result will be empty too.

    Definition Classes
    Aggregator
  10. def applyOption(inputs: TraversableOnce[A]): Option[Long]

    This returns None if the inputs are empty

    This returns None if the inputs are empty

    Definition Classes
    Aggregator
  11. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  12. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  13. def collectBefore[A2](fn: PartialFunction[A2, A]): MonoidAggregator[A2, Either[HLL, Set[A]], Long]

    Only transform values where the function is defined, else discard

    Only transform values where the function is defined, else discard

    Definition Classes
    MonoidAggregator
  14. def composePrepare[A2](prepare2: (A2) => A): MonoidAggregator[A2, Either[HLL, Set[A]], Long]

    Like calling compose on the prepare function

    Like calling compose on the prepare function

    Definition Classes
    MonoidAggregatorAggregator
  15. def convert(set: Set[A]): HLL
  16. def cumulativeIterator(inputs: Iterator[A]): Iterator[Long]

    This returns the cumulative sum of its inputs, in the same order.

    This returns the cumulative sum of its inputs, in the same order. If the inputs are empty, the result will be empty too.

    Definition Classes
    Aggregator
  17. def either[A2, B2, C2](that: MonoidAggregator[A2, B2, C2]): MonoidAggregator[Either[A, A2], (Either[HLL, Set[A]], B2), (Long, C2)]

    Build a MonoidAggregator that either takes left or right input and outputs the pair from both

    Build a MonoidAggregator that either takes left or right input and outputs the pair from both

    Definition Classes
    MonoidAggregator
  18. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def filterBefore[A1 <: A](pred: (A1) => Boolean): MonoidAggregator[A1, Either[HLL, Set[A]], Long]

    Only aggregate items that match a predicate

    Only aggregate items that match a predicate

    Definition Classes
    MonoidAggregator
  20. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  21. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  22. val hllBits: Int
  23. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  24. def join[A2 <: A, B2, C2](that: Aggregator[A2, B2, C2]): Aggregator[A2, (Either[HLL, Set[A]], B2), (Long, C2)]

    This allows you to run two aggregators on the same data with a single pass

    This allows you to run two aggregators on the same data with a single pass

    Definition Classes
    Aggregator
  25. val leftSemigroup: HyperLogLogMonoid
  26. def lift: MonoidAggregator[A, Option[Either[HLL, Set[A]]], Option[Long]]
    Definition Classes
    Aggregator
  27. val maxSetSize: Int
  28. lazy val monoid: EventuallyMonoid[HLL, Set[A]]
    Definition Classes
    EventuallyMonoidAggregatorMonoidAggregator
    Annotations
    @transient()
  29. def mustConvert(set: Set[A]): Boolean
  30. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  31. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  32. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  33. def prepare(a: A): Right[HLL, Set[A]]
  34. def present(b: Either[HLL, Set[A]]): Long
  35. def presentLeft(hll: HLL): Long
  36. def productElementNames: Iterator[String]
    Definition Classes
    Product
  37. final def reduce(items: TraversableOnce[Either[HLL, Set[A]]]): Either[HLL, Set[A]]

    This may error if items is empty.

    This may error if items is empty. To be safe you might use reduceOption if you don't know that items is non-empty

    Definition Classes
    MonoidAggregatorAggregator
  38. def reduce(l: Either[HLL, Set[A]], r: Either[HLL, Set[A]]): Either[HLL, Set[A]]

    combine two inner values

    combine two inner values

    Definition Classes
    Aggregator
  39. def reduceOption(items: TraversableOnce[Either[HLL, Set[A]]]): Option[Either[HLL, Set[A]]]

    This is the safe version of the above.

    This is the safe version of the above. If the input in empty, return None, else reduce the items

    Definition Classes
    Aggregator
  40. val rightAggregator: MonoidAggregator[A, Set[A], Long]
  41. def semigroup: Monoid[Either[HLL, Set[A]]]
    Definition Classes
    MonoidAggregatorAggregator
  42. def sumBefore: MonoidAggregator[TraversableOnce[A], Either[HLL, Set[A]], Long]

    This maps the inputs to Bs, then sums them, effectively flattening the inputs to the MonoidAggregator

    This maps the inputs to Bs, then sums them, effectively flattening the inputs to the MonoidAggregator

    Definition Classes
    MonoidAggregator
  43. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  44. def toFold: Fold[A, Option[Long]]

    An Aggregator can be converted to a Fold, but not vice-versa Note, a Fold is more constrained so only do this if you require joining a Fold with an Aggregator to produce a Fold

    An Aggregator can be converted to a Fold, but not vice-versa Note, a Fold is more constrained so only do this if you require joining a Fold with an Aggregator to produce a Fold

    Definition Classes
    Aggregator
  45. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  46. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  47. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  48. def zip[A2, B2, C2](ag2: MonoidAggregator[A2, B2, C2]): MonoidAggregator[(A, A2), (Either[HLL, Set[A]], B2), (Long, C2)]

    This allows you to join two aggregators into one that takes a tuple input, which in turn allows you to chain .composePrepare onto the result if you have an initial input that has to be prepared differently for each of the joined aggregators.

    This allows you to join two aggregators into one that takes a tuple input, which in turn allows you to chain .composePrepare onto the result if you have an initial input that has to be prepared differently for each of the joined aggregators.

    The law here is: ag1.zip(ag2).apply(as.zip(bs)) == (ag1(as), ag2(bs))

    Definition Classes
    MonoidAggregator
  49. def zip[A2, B2, C2](ag2: Aggregator[A2, B2, C2]): Aggregator[(A, A2), (Either[HLL, Set[A]], B2), (Long, C2)]

    This allows you to join two aggregators into one that takes a tuple input, which in turn allows you to chain .composePrepare onto the result if you have an initial input that has to be prepared differently for each of the joined aggregators.

    This allows you to join two aggregators into one that takes a tuple input, which in turn allows you to chain .composePrepare onto the result if you have an initial input that has to be prepared differently for each of the joined aggregators.

    The law here is: ag1.zip(ag2).apply(as.zip(bs)) == (ag1(as), ag2(bs))

    Definition Classes
    Aggregator

Inherited from Product

Inherited from Equals

Inherited from SetSizeAggregatorBase[A]

Inherited from EventuallyMonoidAggregator[A, HLL, Set[A], Long]

Inherited from MonoidAggregator[A, Either[HLL, Set[A]], Long]

Inherited from AbstractEventuallyAggregator[A, HLL, Set[A], Long]

Inherited from Aggregator[A, Either[HLL, Set[A]], Long]

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped