class AutoCloseableAttemptSpliterator[T <: AutoCloseable, K] extends Spliterator[K]
A spliterator that takes an input iterator of auto closeable T, and a function fn
that can map T to K, with an additional splitPolicy that can split T into a
Seq[T]
It assumes the type T is AutoCloseable, and that if a split policy is specified, that it is capable of handling splitting one T into a sequence of them.
When an attempt to invoke function fn is successful, the item T in input will be
closed. In the case of a failure, all attempts will be closed. It is the responsibility
of the caller to close any remaining items in input that have not been attempted.
fn must be idempotent: this is a requirement because we may call fn multiple times
while handling retries.
- T
element type that must be AutoCloseable
- K
fnresult type
- Alphabetic
- By Inheritance
- AutoCloseableAttemptSpliterator
- Spliterator
- AutoCloseable
- Iterator
- TraversableOnce
- GenTraversableOnce
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new AutoCloseableAttemptSpliterator(input: Iterator[T], fn: (T) ⇒ K)
-
new
AutoCloseableAttemptSpliterator(input: Iterator[T], fn: (T) ⇒ K, splitPolicy: (T) ⇒ Seq[T])
- input
an iterator of T
- fn
a function that takes T and produces K
- splitPolicy
a function that can split an item of type T into a Seq[T]. The split function must close the item passed to it.
Type Members
-
class
GroupedIterator[B >: A] extends AbstractIterator[Seq[B]] with Iterator[Seq[B]]
- Definition Classes
- Iterator
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
++[B >: K](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, K) ⇒ B, combop: (B, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
val
attemptStack: ArrayStack[T]
- Attributes
- protected
-
def
buffered: BufferedIterator[K]
- Definition Classes
- Iterator
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
close(): Unit
- Definition Classes
- AutoCloseableAttemptSpliterator → Spliterator → AutoCloseable
-
def
collect[B](pf: PartialFunction[K, 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[K, B]): Option[B]
- Definition Classes
- TraversableOnce
-
def
contains(elem: Any): Boolean
- Definition Classes
- Iterator
-
def
copyToArray[B >: K](xs: Array[B], start: Int, len: Int): Unit
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: K](xs: Array[B]): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: K](xs: Array[B], start: Int): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToBuffer[B >: K](dest: Buffer[B]): Unit
- Definition Classes
- TraversableOnce
-
def
corresponds[B](that: GenTraversableOnce[B])(p: (K, B) ⇒ Boolean): Boolean
- Definition Classes
- Iterator
-
def
count(p: (K) ⇒ Boolean): Int
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
drop(n: Int): Iterator[K]
- Definition Classes
- Iterator
-
def
dropWhile(p: (K) ⇒ Boolean): Iterator[K]
- Definition Classes
- Iterator
-
def
duplicate: (Iterator[K], Iterator[K])
- Definition Classes
- Iterator
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
exists(p: (K) ⇒ Boolean): Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
filter(p: (K) ⇒ Boolean): Iterator[K]
- Definition Classes
- Iterator
-
def
filterNot(p: (K) ⇒ Boolean): Iterator[K]
- Definition Classes
- Iterator
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
find(p: (K) ⇒ Boolean): Option[K]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
flatMap[B](f: (K) ⇒ GenTraversableOnce[B]): Iterator[B]
- Definition Classes
- Iterator
-
def
fold[A1 >: K](z: A1)(op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldLeft[B](z: B)(op: (B, K) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldRight[B](z: B)(op: (K, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
forall(p: (K) ⇒ Boolean): Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
foreach[U](f: (K) ⇒ U): Unit
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
grouped[B >: K](size: Int): GroupedIterator[B]
- Definition Classes
- Iterator
-
def
hasDefiniteSize: Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
hasNext: Boolean
- Definition Classes
- AutoCloseableAttemptSpliterator → Spliterator → Iterator
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
indexOf[B >: K](elem: B, from: Int): Int
- Definition Classes
- Iterator
-
def
indexOf[B >: K](elem: B): Int
- Definition Classes
- Iterator
-
def
indexWhere(p: (K) ⇒ Boolean, from: Int): Int
- Definition Classes
- Iterator
-
def
indexWhere(p: (K) ⇒ Boolean): Int
- Definition Classes
- Iterator
-
def
isEmpty: Boolean
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraversableAgain: Boolean
- Definition Classes
- Iterator → GenTraversableOnce
-
def
length: Int
- Definition Classes
- Iterator
-
def
map[B](f: (K) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
max[B >: K](implicit cmp: Ordering[B]): K
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
maxBy[B](f: (K) ⇒ B)(implicit cmp: Ordering[B]): K
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
min[B >: K](implicit cmp: Ordering[B]): K
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
minBy[B](f: (K) ⇒ B)(implicit cmp: Ordering[B]): K
- 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(): K
- Definition Classes
- AutoCloseableAttemptSpliterator → Spliterator → Iterator
-
def
nonEmpty: Boolean
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
padTo[A1 >: K](len: Int, elem: A1): Iterator[A1]
- Definition Classes
- Iterator
-
def
partition(p: (K) ⇒ Boolean): (Iterator[K], Iterator[K])
- Definition Classes
- Iterator
-
def
patch[B >: K](from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B]
- Definition Classes
- Iterator
-
def
product[B >: K](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduce[A1 >: K](op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceLeft[B >: K](op: (B, K) ⇒ B): B
- Definition Classes
- TraversableOnce
-
def
reduceLeftOption[B >: K](op: (B, K) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceOption[A1 >: K](op: (A1, A1) ⇒ A1): Option[A1]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceRight[B >: K](op: (K, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceRightOption[B >: K](op: (K, B) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reversed: List[K]
- Attributes
- protected[this]
- Definition Classes
- TraversableOnce
-
def
sameElements(that: Iterator[_]): Boolean
- Definition Classes
- Iterator
-
def
scanLeft[B](z: B)(op: (B, K) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
scanRight[B](z: B)(op: (K, B) ⇒ B): Iterator[B]
- Definition Classes
- Iterator
-
def
seq: Iterator[K]
- 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[K]
- Definition Classes
- Iterator
-
def
sliceIterator(from: Int, until: Int): Iterator[K]
- Attributes
- protected
- Definition Classes
- Iterator
-
def
sliding[B >: K](size: Int, step: Int): GroupedIterator[B]
- Definition Classes
- Iterator
-
def
span(p: (K) ⇒ Boolean): (Iterator[K], Iterator[K])
- Definition Classes
- Iterator
-
def
split(isFromGpuOom: Boolean): Unit
Split is a function that is invoked by
RmmRapidsRetryIteratorwhenGpuSplitAndRetryOOMorCpuSplitAndRetryOOMis thrown.Split is a function that is invoked by
RmmRapidsRetryIteratorwhenGpuSplitAndRetryOOMorCpuSplitAndRetryOOMis thrown. This function is implemented bySpliteratorclasses to attempt to handle this exception by reducing the size of attempts (the thing that.nextis using as an input), usually by splitting a batch in half by number of rows, or splitting a collection of batches into smaller collections to be attempted separately, likely reducing GPU memory that needs to be manifested while calling.next.- isFromGpuOom
true if the split happened because of a GPU OOM. Otherwise it was a CPU off heap OOM.
- Definition Classes
- AutoCloseableAttemptSpliterator → Spliterator
-
def
sum[B >: K](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
take(n: Int): Iterator[K]
- Definition Classes
- Iterator
-
def
takeWhile(p: (K) ⇒ Boolean): Iterator[K]
- Definition Classes
- Iterator
-
def
to[Col[_]](implicit cbf: CanBuildFrom[Nothing, K, Col[K]]): Col[K]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toArray[B >: K](implicit arg0: ClassTag[B]): Array[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toBuffer[B >: K]: Buffer[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIndexedSeq: IndexedSeq[K]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIterable: Iterable[K]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIterator: Iterator[K]
- Definition Classes
- Iterator → GenTraversableOnce
-
def
toList: List[K]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toMap[T, U](implicit ev: <:<[K, (T, U)]): Map[T, U]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSeq: Seq[K]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSet[B >: K]: Set[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toStream: Stream[K]
- Definition Classes
- Iterator → GenTraversableOnce
-
def
toString(): String
- Definition Classes
- Iterator → AnyRef → Any
-
def
toTraversable: Traversable[K]
- Definition Classes
- Iterator → TraversableOnce → GenTraversableOnce
-
def
toVector: Vector[K]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
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()
-
def
withFilter(p: (K) ⇒ Boolean): Iterator[K]
- Definition Classes
- Iterator
-
def
zip[B](that: Iterator[B]): Iterator[(K, B)]
- Definition Classes
- Iterator
-
def
zipAll[B, A1 >: K, B1 >: B](that: Iterator[B], thisElem: A1, thatElem: B1): Iterator[(A1, B1)]
- Definition Classes
- Iterator
-
def
zipWithIndex: Iterator[(K, Int)]
- Definition Classes
- Iterator
Deprecated Value Members
-
def
/:[B](z: B)(op: (B, K) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.10) Use foldLeft instead of /:
-
def
:\[B](z: B)(op: (K, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.10) Use foldRight instead of :\