class RankFixer extends BatchedRunningWindowFixer with Logging
Rank is more complicated than DenseRank to fix. This is because there are gaps in the rank values. The rank value of each group is row number of the first row in the group. So values in the same partition group but not the same ordering are fixed by adding the row number from the previous batch to them. If they are a part of the same ordering and part of the same partition, then we need to just put in the previous rank value.
Because we need both a rank and a row number to fix things up the input to this is a struct
containing a rank column as the first entry and a row number column as the second entry. This
happens in the scanCombine method for GpuRank. It is a little ugly but it works to maintain
the requirement that the input to the fixer is a single column.
- Alphabetic
- By Inheritance
- RankFixer
- Logging
- BatchedRunningWindowFixer
- Retryable
- AutoCloseable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new RankFixer()
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
checkpoint(): Unit
- Definition Classes
- RankFixer → Retryable
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
close(): Unit
- Definition Classes
- RankFixer → AutoCloseable
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
fixUp(samePartitionMask: Either[ColumnVector, Boolean], sameOrderMask: Option[Either[ColumnVector, Boolean]], windowedColumnOutput: ColumnView): ColumnVector
Fix up
windowedColumnOutputwith any stored state from previous batches.Fix up
windowedColumnOutputwith any stored state from previous batches. Like all window operations the input data will have been sorted by the partition by columns and the order by columns.- samePartitionMask
a mask that uses
trueto indicate the row is for the same partition by keys that was the last row in the previous batch orfalseto indicate it is not. If this is known to be all true or all false values a single boolean is used. If it can change for different rows than a column vector is provided. Only values that are for the same partition by keys should be modified. Because the input data is sorted by the partition by columns the boolean values will be grouped together.- sameOrderMask
a mask just like
samePartitionMaskbut for ordering. This happens for some operations likerankanddense_rankthat use the ordering columns in a row based query. This is not needed for all fixers and is not free to calculate, so you must setneedsOrderMaskto true if you are going to use it.- windowedColumnOutput
the output of the windowAggregation without anything fixed/modified. This should not be closed by
fixUpas it will be handled by the framework.- returns
a fixed ColumnVector that was with outputs updated for items that were in the same group by key as the last row in the previous batch.
- Definition Classes
- RankFixer → BatchedRunningWindowFixer
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
incRef(col: ColumnView): ColumnVector
- Attributes
- protected
- Definition Classes
- BatchedRunningWindowFixer
-
def
initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
initializeLogIfNecessary(isInterpreter: Boolean): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
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
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
needsOrderMask: Boolean
- Definition Classes
- RankFixer → BatchedRunningWindowFixer
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
restore(): Unit
- Definition Classes
- RankFixer → Retryable
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
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()