ExternalAppendOnlyUnsafeRowArray — Append-Only Array for UnsafeRows (with Disk Spill Threshold)
ExternalAppendOnlyUnsafeRowArray is an append-only array for UnsafeRows that spills content to disk when a predefined spill threshold of rows is reached.
|
Note
|
Choosing a proper spill threshold of rows is a performance optimization. |
ExternalAppendOnlyUnsafeRowArray is created when:
-
WindowExecphysical operator is executed (and creates an internal buffer for window frames) -
WindowFunctionFrameis prepared -
SortMergeJoinExecphysical operator is executed (and creates aRowIteratorfor INNER and CROSS joins) and forgetBufferedMatches -
SortMergeJoinScannercreates an internalbufferedMatches -
UnsafeCartesianRDDis computed
| Name | Description |
|---|---|
|
FIXME Used when…FIXME |
|
|
FIXME Can grow up to numRowsSpillThreshold rows (i.e. new Used when…FIXME |
|
|
Used when…FIXME |
|
|
Used when…FIXME |
|
|
Used when…FIXME |
|
|
Used when…FIXME |
|
Tip
|
Enable Add the following line to
Refer to Logging. |
generateIterator Method
|
1 2 3 4 5 6 |
generateIterator(): Iterator[UnsafeRow] generateIterator(startIndex: Int): Iterator[UnsafeRow] |
|
Caution
|
FIXME |
add Method
|
1 2 3 4 5 |
add(unsafeRow: UnsafeRow): Unit |
|
Caution
|
FIXME |
|
Note
|
|
Creating ExternalAppendOnlyUnsafeRowArray Instance
ExternalAppendOnlyUnsafeRowArray takes the following when created:
ExternalAppendOnlyUnsafeRowArray initializes the internal registries and counters.
spark技术分享