class GpuHashAggregateIterator extends Iterator[ColumnarBatch] with Arm with AutoCloseable with Logging
Iterator that takes another columnar batch iterator as input and emits new columnar batches that are aggregated based on the specified grouping and aggregation expressions. This iterator tries to perform a hash-based aggregation but is capable of falling back to a sort-based aggregation which can operate on data that is either larger than can be represented by a cudf column or larger than can fit in GPU memory.
The iterator starts by pulling all batches from the input iterator, performing an initial
projection and aggregation on each individual batch via aggregateInputBatches(). The resulting
aggregated batches are cached in memory as spillable batches. Once all input batches have been
aggregated, tryMergeAggregatedBatches() is called to attempt a merge of the aggregated batches
into a single batch. If this is successful then the resulting batch can be returned, otherwise
buildSortFallbackIterator is used to sort the aggregated batches by the grouping keys and
performs a final merge aggregation pass on the sorted batches.
- Alphabetic
- By Inheritance
- GpuHashAggregateIterator
- Logging
- AutoCloseable
- Arm
- Iterator
- TraversableOnce
- GenTraversableOnce
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
GpuHashAggregateIterator(cbIter: Iterator[ColumnarBatch], inputAttributes: Seq[Attribute], groupingExpressions: Seq[NamedExpression], aggregateExpressions: Seq[GpuAggregateExpression], aggregateAttributes: Seq[Attribute], resultExpressions: Seq[NamedExpression], modeInfo: AggregateModeInfo, metrics: GpuHashAggregateMetrics, configuredTargetBatchSize: Long)
- cbIter
iterator providing the input columnar batches
- inputAttributes
input attributes to identify the input columns from the input batches
- groupingExpressions
expressions used for producing the grouping keys
- aggregateExpressions
GPU aggregate expressions used to produce the aggregations
- aggregateAttributes
attribute references to each aggregate expression
- resultExpressions
output expression for the aggregation
- modeInfo
identifies which aggregation modes are being used
- metrics
metrics that will be updated during aggregation
- configuredTargetBatchSize
user-specified value for the targeted input batch size
Type Members
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
++[B >: ColumnarBatch](that: ⇒ GenTraversableOnce[B]): Iterator[B]
- Definition Classes
- Iterator
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addString(b: StringBuilder): StringBuilder
- Definition Classes
- TraversableOnce
-
def
addString(b: StringBuilder, sep: String): StringBuilder
- Definition Classes
- TraversableOnce
-
def
addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
- Definition Classes
- TraversableOnce
-
def
aggregate[B](z: ⇒ B)(seqop: (B, ColumnarBatch) ⇒ B, combop: (B, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
buffered: BufferedIterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
close(): Unit
- Definition Classes
- GpuHashAggregateIterator → AutoCloseable
-
def
closeOnExcept[T <: AutoCloseable, V](r: Option[T])(block: (Option[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: ArrayBuffer[T])(block: (ArrayBuffer[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: Array[T])(block: (Array[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: Seq[T])(block: (Seq[T]) ⇒ V): V
Executes the provided code block, closing the resources only if an exception occurs
Executes the provided code block, closing the resources only if an exception occurs
- Definition Classes
- Arm
-
def
closeOnExcept[T <: AutoCloseable, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block, closing the resource only if an exception occurs
Executes the provided code block, closing the resource only if an exception occurs
- Definition Classes
- Arm
-
def
collect[B](pf: PartialFunction[ColumnarBatch, B]): Iterator[B]
- Definition Classes
- Iterator
- Annotations
- @migration
- Migration
(Changed in version 2.8.0)
collecthas changed. The previous behavior can be reproduced withtoSeq.
-
def
collectFirst[B](pf: PartialFunction[ColumnarBatch, B]): Option[B]
- Definition Classes
- TraversableOnce
-
def
contains(elem: Any): Boolean
- Definition Classes
- Iterator
-
def
copyToArray[B >: ColumnarBatch](xs: Array[B], start: Int, len: Int): Unit
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: ColumnarBatch](xs: Array[B]): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: ColumnarBatch](xs: Array[B], start: Int): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToBuffer[B >: ColumnarBatch](dest: Buffer[B]): Unit
- Definition Classes
- TraversableOnce
-
def
corresponds[B](that: GenTraversableOnce[B])(p: (ColumnarBatch, B) ⇒ Boolean): Boolean
- Definition Classes
- Iterator
-
def
count(p: (ColumnarBatch) ⇒ Boolean): Int
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
drop(n: Int): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
dropWhile(p: (ColumnarBatch) ⇒ Boolean): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
duplicate: (Iterator[ColumnarBatch], Iterator[ColumnarBatch])
- Definition Classes
- Iterator
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
exists(p: (ColumnarBatch) ⇒ Boolean): Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
filter(p: (ColumnarBatch) ⇒ Boolean): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
filterNot(p: (ColumnarBatch) ⇒ Boolean): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
find(p: (ColumnarBatch) ⇒ Boolean): Option[ColumnarBatch]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
flatMap[B](f: (ColumnarBatch) ⇒ GenTraversableOnce[B]): Iterator[B]
- Definition Classes
- Iterator
-
def
fold[A1 >: ColumnarBatch](z: A1)(op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldLeft[B](z: B)(op: (B, ColumnarBatch) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldRight[B](z: B)(op: (ColumnarBatch, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
forall(p: (ColumnarBatch) ⇒ Boolean): Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
foreach[U](f: (ColumnarBatch) ⇒ U): Unit
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
freeOnExcept[T <: RapidsBuffer, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block, freeing the RapidsBuffer only if an exception occurs
Executes the provided code block, freeing the RapidsBuffer only if an exception occurs
- Definition Classes
- Arm
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
grouped[B >: ColumnarBatch](size: Int): GroupedIterator[B]
- Definition Classes
- Iterator
-
def
hasDefiniteSize: Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
hasNext: Boolean
- Definition Classes
- GpuHashAggregateIterator → Iterator
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
indexOf[B >: ColumnarBatch](elem: B, from: Int): Int
- Definition Classes
- Iterator
-
def
indexOf[B >: ColumnarBatch](elem: B): Int
- Definition Classes
- Iterator
-
def
indexWhere(p: (ColumnarBatch) ⇒ Boolean, from: Int): Int
- Definition Classes
- Iterator
-
def
indexWhere(p: (ColumnarBatch) ⇒ Boolean): Int
- Definition Classes
- Iterator
-
def
initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
initializeLogIfNecessary(isInterpreter: Boolean): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
isEmpty: Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
isTraversableAgain: Boolean
- Definition Classes
- Iterator → GenTraversableOnce
-
def
length: Int
- Definition Classes
- Iterator
-
def
log: Logger
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logName: String
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
map[B](f: (ColumnarBatch) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
max[B >: ColumnarBatch](implicit cmp: Ordering[B]): ColumnarBatch
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
maxBy[B](f: (ColumnarBatch) ⇒ B)(implicit cmp: Ordering[B]): ColumnarBatch
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
min[B >: ColumnarBatch](implicit cmp: Ordering[B]): ColumnarBatch
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
minBy[B](f: (ColumnarBatch) ⇒ B)(implicit cmp: Ordering[B]): ColumnarBatch
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString: String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString(sep: String): String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString(start: String, sep: String, end: String): String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
next(): ColumnarBatch
- Definition Classes
- GpuHashAggregateIterator → Iterator
-
def
nonEmpty: Boolean
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
padTo[A1 >: ColumnarBatch](len: Int, elem: A1): Iterator[A1]
- Definition Classes
- Iterator
-
def
partition(p: (ColumnarBatch) ⇒ Boolean): (Iterator[ColumnarBatch], Iterator[ColumnarBatch])
- Definition Classes
- Iterator
-
def
patch[B >: ColumnarBatch](from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B]
- Definition Classes
- Iterator
-
def
product[B >: ColumnarBatch](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduce[A1 >: ColumnarBatch](op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceLeft[B >: ColumnarBatch](op: (B, ColumnarBatch) ⇒ B): B
- Definition Classes
- TraversableOnce
-
def
reduceLeftOption[B >: ColumnarBatch](op: (B, ColumnarBatch) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceOption[A1 >: ColumnarBatch](op: (A1, A1) ⇒ A1): Option[A1]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceRight[B >: ColumnarBatch](op: (ColumnarBatch, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceRightOption[B >: ColumnarBatch](op: (ColumnarBatch, B) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reversed: List[ColumnarBatch]
- Attributes
- protected[this]
- Definition Classes
- TraversableOnce
-
def
sameElements(that: Iterator[_]): Boolean
- Definition Classes
- Iterator
-
def
scanLeft[B](z: B)(op: (B, ColumnarBatch) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
scanRight[B](z: B)(op: (ColumnarBatch, B) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
seq: Iterator[ColumnarBatch]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
size: Int
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
sizeHintIfCheap: Int
- Attributes
- protected[collection]
- Definition Classes
- GenTraversableOnce
-
def
slice(from: Int, until: Int): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
sliceIterator(from: Int, until: Int): Iterator[ColumnarBatch]
- Attributes
- protected
- Definition Classes
- Iterator
-
def
sliding[B >: ColumnarBatch](size: Int, step: Int): GroupedIterator[B]
- Definition Classes
- Iterator
-
def
span(p: (ColumnarBatch) ⇒ Boolean): (Iterator[ColumnarBatch], Iterator[ColumnarBatch])
- Definition Classes
- Iterator
-
def
sum[B >: ColumnarBatch](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
take(n: Int): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
takeWhile(p: (ColumnarBatch) ⇒ Boolean): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
to[Col[_]](implicit cbf: CanBuildFrom[Nothing, ColumnarBatch, Col[ColumnarBatch]]): Col[ColumnarBatch]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toArray[B >: ColumnarBatch](implicit arg0: ClassTag[B]): Array[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toBuffer[B >: ColumnarBatch]: Buffer[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIndexedSeq: IndexedSeq[ColumnarBatch]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIterable: Iterable[ColumnarBatch]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIterator: Iterator[ColumnarBatch]
- Definition Classes
- Iterator → GenTraversableOnce
-
def
toList: List[ColumnarBatch]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toMap[T, U](implicit ev: <:<[ColumnarBatch, (T, U)]): Map[T, U]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSeq: Seq[ColumnarBatch]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSet[B >: ColumnarBatch]: Set[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toStream: Stream[ColumnarBatch]
- Definition Classes
- Iterator → GenTraversableOnce
-
def
toString(): String
- Definition Classes
- Iterator → AnyRef → Any
-
def
toTraversable: Traversable[ColumnarBatch]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
toVector: Vector[ColumnarBatch]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withFilter(p: (ColumnarBatch) ⇒ Boolean): Iterator[ColumnarBatch]
- Definition Classes
- Iterator
-
def
withResource[T <: AutoCloseable, V](h: CloseableHolder[T])(block: (CloseableHolder[T]) ⇒ V): V
Executes the provided code block and then closes the resource
Executes the provided code block and then closes the resource
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: ArrayBuffer[T])(block: (ArrayBuffer[T]) ⇒ V): V
Executes the provided code block and then closes the array buffer of resources
Executes the provided code block and then closes the array buffer of resources
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: Array[T])(block: (Array[T]) ⇒ V): V
Executes the provided code block and then closes the array of resources
Executes the provided code block and then closes the array of resources
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: Seq[T])(block: (Seq[T]) ⇒ V): V
Executes the provided code block and then closes the sequence of resources
Executes the provided code block and then closes the sequence of resources
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: Option[T])(block: (Option[T]) ⇒ V): V
Executes the provided code block and then closes the Option[resource]
Executes the provided code block and then closes the Option[resource]
- Definition Classes
- Arm
-
def
withResource[T <: AutoCloseable, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block and then closes the resource
Executes the provided code block and then closes the resource
- Definition Classes
- Arm
-
def
withResourceIfAllowed[T, V](r: T)(block: (T) ⇒ V): V
Executes the provided code block and then closes the value if it is AutoCloseable
Executes the provided code block and then closes the value if it is AutoCloseable
- Definition Classes
- Arm
-
def
zip[B](that: Iterator[B]): Iterator[(ColumnarBatch, B)]
- Definition Classes
- Iterator
-
def
zipAll[B, A1 >: ColumnarBatch, B1 >: B](that: Iterator[B], thisElem: A1, thatElem: B1): Iterator[(A1, B1)]
- Definition Classes
- Iterator
-
def
zipWithIndex: Iterator[(ColumnarBatch, Int)]
- Definition Classes
- Iterator
Deprecated Value Members
-
def
/:[B](z: B)(op: (B, ColumnarBatch) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.10) Use foldLeft instead of /:
-
def
:\[B](z: B)(op: (ColumnarBatch, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.10) Use foldRight instead of :\
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated
- Deprecated