trait ReducibleFunction[I, O] extends AnyRef
Base class for user-defined functions that can be 'reduced' on another function.
A function f_source(x) is 'reducible' on another function f_target(x) if
- There exists a reducer function r(x) such that r(f_source(x)) = f_target(x) for all input x, or
- More generally, there exists reducer functions r1(x) and r2(x) such that r1(f_source(x)) = r2(f_target(x)) for all input x.
Examples:
- Bucket functions where one side has reducer
- f_source(x) = bucket(4, x)
- f_target(x) = bucket(2, x)
- r(x) = x % 2
- Bucket functions where both sides have reducer
- f_source(x) = bucket(16, x)
- f_target(x) = bucket(12, x)
- r1(x) = x % 4
- r2(x) = x % 4
- Date functions
- f_source(x) = days(x)
- f_target(x) = hours(x)
- r(x) = x / 24
- Annotations
- @Evolving()
- Source
- ReducibleFunction.java
- Since
4.0.0
- Alphabetic
- By Inheritance
- ReducibleFunction
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def reducer(otherFunction: ReducibleFunction[_ <: AnyRef, _ <: AnyRef]): Reducer[I, O]
This method is for all other functions.
This method is for all other functions.
If this function is 'reducible' on another function, return the
Reducerfunction.Example of reducing f_source = days(x) on f_target = hours(x)
- thisFunction = days
- otherFunction = hours
- otherFunction
the other function
- returns
a reduction function if it is reducible, null if not.
- def reducer(thisNumBuckets: Int, otherBucketFunction: ReducibleFunction[_ <: AnyRef, _ <: AnyRef], otherNumBuckets: Int): Reducer[I, O]
This method is for the bucket function.
This method is for the bucket function.
If this bucket function is 'reducible' on another bucket function, return the
Reducerfunction.For example, to return reducer for reducing f_source = bucket(4, x) on f_target = bucket(2, x)
- thisBucketFunction = bucket
- thisNumBuckets = 4
- otherBucketFunction = bucket
- otherNumBuckets = 2
- thisNumBuckets
parameter for this function
- otherBucketFunction
the other parameterized function
- otherNumBuckets
parameter for the other function
- returns
a reduction function if it is reducible, null if not
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)