case class GpuReplicateRows(children: Seq[Expression]) extends Expression with GpuGenerator with ShimExpression with Product with Serializable
- Alphabetic
- By Inheritance
- GpuReplicateRows
- Serializable
- Serializable
- ShimExpression
- GpuGenerator
- GpuUnevaluable
- GpuExpression
- Arm
- Expression
- TreeNode
- TreePatternBits
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new GpuReplicateRows(children: Seq[Expression])
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
-
def
apply(number: Int): TreeNode[_]
- Definition Classes
- TreeNode
-
def
argString(maxFields: Int): String
- Definition Classes
- TreeNode
-
def
asCode: String
- Definition Classes
- TreeNode
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
lazy val
canonicalized: Expression
- Definition Classes
- GpuExpression → Expression
-
def
checkInputDataTypes(): TypeCheckResult
- Definition Classes
- Expression
-
val
children: Seq[Expression]
- Definition Classes
- GpuReplicateRows → TreeNode
-
def
childrenResolved: Boolean
- Definition Classes
- Expression
-
def
clone(): Expression
- Definition Classes
- TreeNode → AnyRef
-
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[Expression, B]): Seq[B]
- Definition Classes
- TreeNode
-
def
collectFirst[B](pf: PartialFunction[Expression, B]): Option[B]
- Definition Classes
- TreeNode
-
def
collectLeaves(): Seq[Expression]
- Definition Classes
- TreeNode
-
final
def
columnarEval(batch: ColumnarBatch): Any
Returns the result of evaluating this expression on the entire
ColumnarBatch.Returns the result of evaluating this expression on the entire
ColumnarBatch. The result of calling this may be a singleGpuColumnVectoror a scalar value. Scalar values typically happen if they are a part of the expression i.e. col("a") + 100. In this case the 100 is a literal that Add would have to be able to handle.By convention any
GpuColumnVectorreturned by columnarEval is owned by the caller and will need to be closed by them. This can happen by putting it into aColumnarBatchand closing the batch or by closing the vector directly if it is a temporary value.- Definition Classes
- GpuUnevaluable → GpuExpression
-
final
def
containsAllPatterns(patterns: TreePattern*): Boolean
- Definition Classes
- TreePatternBits
-
final
def
containsAnyPattern(patterns: TreePattern*): Boolean
- Definition Classes
- TreePatternBits
-
lazy val
containsChild: Set[TreeNode[_]]
- Definition Classes
- TreeNode
-
final
def
containsPattern(t: TreePattern): Boolean
- Definition Classes
- TreePatternBits
- Annotations
- @inline()
-
def
convertToAst(numFirstTableColumns: Int): AstExpression
Build an equivalent representation of this expression in a cudf AST.
Build an equivalent representation of this expression in a cudf AST.
- numFirstTableColumns
number of columns in the leftmost input table. Spark places the columns of all inputs in a single sequence, while cudf AST uses an explicit table reference to make column indices unique. This parameter helps translate input column references from Spark's single sequence into cudf's separate sequences.
- returns
top node of the equivalent AST
- Definition Classes
- GpuExpression
-
def
copyTagsFrom(other: Expression): Unit
- Definition Classes
- TreeNode
-
def
dataType: DataType
- Definition Classes
- GpuGenerator → Expression
-
lazy val
deterministic: Boolean
- Definition Classes
- Expression
-
def
disableCoalesceUntilInput(): Boolean
Override this if your expression cannot allow combining of data from multiple files into a single batch before it operates on them.
Override this if your expression cannot allow combining of data from multiple files into a single batch before it operates on them. These are for things like getting the input file name. Which for spark is stored in a thread local variable which means we have to jump through some hoops to make this work.
- Definition Classes
- GpuExpression
-
final
def
doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode
- Definition Classes
- GpuExpression → Expression
-
def
elementSchema: StructType
The output element schema.
The output element schema.
- Definition Classes
- GpuReplicateRows → GpuGenerator
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
eval(input: InternalRow = null): Any
- Definition Classes
- GpuExpression → Expression
-
def
fastEquals(other: TreeNode[_]): Boolean
- Definition Classes
- TreeNode
-
def
find(f: (Expression) ⇒ Boolean): Option[Expression]
- Definition Classes
- TreeNode
-
def
fixedLenLazyArrayGenerate(inputIterator: Iterator[ColumnarBatch], boundLazyProjectList: Seq[Expression], boundOthersProjectList: Seq[Expression], outputSchema: Array[DataType], outer: Boolean, numOutputRows: GpuMetric, numOutputBatches: GpuMetric, opTime: GpuMetric): Iterator[ColumnarBatch]
Optimized lazy generation interface which is specialized for fixed length array input.
Optimized lazy generation interface which is specialized for fixed length array input.
For some generators (like explode), it is possible to improve performance through lazy evaluation when input schema is fixed length array.
- inputIterator
input iterator from child plan
- boundLazyProjectList
lazy expressions bounded with child outputs
- boundOthersProjectList
other required expressions bounded with child outputs
- outputSchema
result schema of GpuGenerateExec
- outer
when true, each input row will be output at least once, even if the output of the given
generatoris empty.- numOutputRows
Gpu spark metric of output rows
- numOutputBatches
Gpu spark metric of output batches
- opTime
Gpu spark metric of time on GPU by GpuGenerateExec
- returns
result iterator
- Definition Classes
- GpuGenerator
-
def
fixedLenLazyExpressions: Seq[Expression]
Extract lazy expressions from generator if exists.
Extract lazy expressions from generator if exists.
This is a specialized method for GPU runtime, which is called by GpuGenerateExec to determine whether current generation plan can be executed with optimized lazy array generation or not.
- returns
fixed length lazy expressions for generation. Nil value means no lazy expressions to extract, which indicates fixed length lazy array generation is unavailable.
- Definition Classes
- GpuGenerator
-
def
flatArguments: Iterator[Any]
- Attributes
- protected
- Definition Classes
- Expression
-
def
flatMap[A](f: (Expression) ⇒ TraversableOnce[A]): Seq[A]
- Definition Classes
- TreeNode
-
def
foldable: Boolean
- Definition Classes
- GpuGenerator → Expression
-
def
foreach(f: (Expression) ⇒ Unit): Unit
- Definition Classes
- TreeNode
-
def
foreachUp(f: (Expression) ⇒ Unit): Unit
- Definition Classes
- TreeNode
-
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
-
def
genCode(ctx: CodegenContext): ExprCode
- Definition Classes
- Expression
-
def
generate(inputBatch: ColumnarBatch, generatorOffset: Int, outer: Boolean): ColumnarBatch
Apply generator to produce result ColumnarBatch from input batch.
Apply generator to produce result ColumnarBatch from input batch.
This is a specialized method for GPU runtime, which is called by GpuGenerateExec who owns the generator. The reason of creating a new method rather than implementing columnarEval is that generator is an integrated Table transformer instead of column transformer in terms of cuDF.
- inputBatch
projected input data, which ensures appending columns are ahead of generators' inputs. So, generators can distinguish them with an offset.
- generatorOffset
column offset of generator's input columns in
inputBatch- outer
when true, each input row will be output at least once, even if the output of the given
generatoris empty.- returns
result ColumnarBatch
- Definition Classes
- GpuReplicateRows → GpuGenerator
-
def
generateTreeString(depth: Int, lastChildren: Seq[Boolean], append: (String) ⇒ Unit, verbose: Boolean, prefix: String, addSuffix: Boolean, maxFields: Int, printNodeId: Boolean, indent: Int): Unit
- Definition Classes
- TreeNode
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
getDefaultTreePatternBits: BitSet
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
getTagValue[T](tag: TreeNodeTag[T]): Option[T]
- Definition Classes
- TreeNode
-
def
hasSideEffects: Boolean
Could evaluating this expression cause side-effects, such as throwing an exception?
Could evaluating this expression cause side-effects, such as throwing an exception?
- Definition Classes
- GpuExpression
-
def
hashCode(): Int
- Definition Classes
- TreeNode → AnyRef → Any
-
def
innerChildren: Seq[TreeNode[_]]
- Definition Classes
- TreeNode
-
def
inputSplitIndices(inputBatch: ColumnarBatch, generatorOffset: Int, outer: Boolean, targetSizeBytes: Long): Array[Int]
Compute split indices for generator's input batches.
Compute split indices for generator's input batches.
This is a specialized method for GPU runtime, which is called by GpuGenerateExec to split up input batches to reduce total memory cost during generating. It is necessary because most of generators may produce multiple records for each input record, which make output batch size much larger than input size.
- inputBatch
projected input data, which ensures appending columns are ahead of generators' inputs. So, generators can distinguish them with an offset.
- generatorOffset
column offset of generator's input columns in
inputBatch- outer
when true, each input row will be output at least once, even if the output of the given
generatoris empty.- targetSizeBytes
the target number of bytes for a GPU batch, one of
RapidsConf- returns
split indices of input batch
- Definition Classes
- GpuReplicateRows → GpuGenerator
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isRuleIneffective(ruleId: RuleId): Boolean
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
jsonFields: List[JField]
- Attributes
- protected
- Definition Classes
- TreeNode
-
final
def
legacyWithNewChildren(newChildren: Seq[Expression]): Expression
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
makeCopy(newArgs: Array[AnyRef]): Expression
- Definition Classes
- TreeNode
-
def
map[A](f: (Expression) ⇒ A): Seq[A]
- Definition Classes
- TreeNode
-
def
mapChildren(f: (Expression) ⇒ Expression): Expression
- Definition Classes
- TreeNode
-
def
mapProductIterator[B](f: (Any) ⇒ B)(implicit arg0: ClassTag[B]): Array[B]
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
markRuleAsIneffective(ruleId: RuleId): Unit
- Attributes
- protected
- Definition Classes
- TreeNode
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nodeName: String
- Definition Classes
- TreeNode
-
val
nodePatterns: Seq[TreePattern]
- Attributes
- protected
- Definition Classes
- TreeNode
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
nullable: Boolean
- Definition Classes
- GpuGenerator → Expression
-
def
numberedTreeString: String
- Definition Classes
- TreeNode
-
val
origin: Origin
- Definition Classes
- TreeNode
-
def
otherCopyArgs: Seq[AnyRef]
- Attributes
- protected
- Definition Classes
- TreeNode
-
def
p(number: Int): Expression
- Definition Classes
- TreeNode
-
def
prettyJson: String
- Definition Classes
- TreeNode
-
def
prettyName: String
- Definition Classes
- Expression
-
def
references: AttributeSet
- Definition Classes
- Expression
-
lazy val
resolved: Boolean
- Definition Classes
- Expression
-
final
def
semanticEquals(other: Expression): Boolean
- Definition Classes
- Expression
-
def
semanticHash(): Int
- Definition Classes
- Expression
-
def
setTagValue[T](tag: TreeNodeTag[T], value: T): Unit
- Definition Classes
- TreeNode
-
def
simpleString(maxFields: Int): String
- Definition Classes
- Expression → TreeNode
-
def
simpleStringWithNodeId(): String
- Definition Classes
- Expression → TreeNode
-
def
sql: String
- Definition Classes
- Expression
-
def
stringArgs: Iterator[Any]
- Attributes
- protected
- Definition Classes
- TreeNode
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toJSON: String
- Definition Classes
- TreeNode
-
def
toString(): String
- Definition Classes
- Expression → TreeNode → AnyRef → Any
-
def
transform(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformDown(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformDownWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformUp(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformUpWithBeforeAndAfterRuleOnChildren(cond: (Expression) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[(Expression, Expression), Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformUpWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
transformWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
lazy val
treePatternBits: BitSet
- Definition Classes
- TreeNode → TreePatternBits
-
def
treeString(append: (String) ⇒ Unit, verbose: Boolean, addSuffix: Boolean, maxFields: Int, printOperatorId: Boolean): Unit
- Definition Classes
- TreeNode
-
final
def
treeString(verbose: Boolean, addSuffix: Boolean, maxFields: Int, printOperatorId: Boolean): String
- Definition Classes
- TreeNode
-
final
def
treeString: String
- Definition Classes
- TreeNode
-
def
unsetTagValue[T](tag: TreeNodeTag[T]): Unit
- Definition Classes
- TreeNode
-
final
def
verboseString(maxFields: Int): String
- Definition Classes
- Expression → TreeNode
-
def
verboseStringWithSuffix(maxFields: Int): String
- Definition Classes
- TreeNode
-
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( ... )
-
final
def
withNewChildren(newChildren: Seq[Expression]): Expression
- Definition Classes
- TreeNode
-
def
withNewChildrenInternal(newChildren: IndexedSeq[Expression]): Expression
- Definition Classes
- ShimExpression → TreeNode
-
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