trait AggregateByIndex extends DeclarativeAggregate with HigherOrderFunction
An expression that allows users to aggregate over all array elements at a specific index in an array column. For example, this expression can be used to compute per-sample summary statistics from a genotypes column.
The user must provide the following arguments: - The array for aggregation - The initialValue for each element in the per-index buffer - An update function to update the buffer with a new element - A merge function to combine two buffers
The user may optionally provide an evaluate function. If it's not provided, the identity function is used.
Example usage to calculate average depth across all sites for a sample: aggregate_by_index( genotypes, named_struct('sum', 0l, 'count', 0l), (buf, genotype) -> named_struct('sum', buf.sum + genotype.depth, 'count', buf.count + 1), (buf1, buf2) -> named_struct('sum', buf1.sum + buf2.sum, 'count', buf1.count + buf2.count), buf -> buf.sum / buf.count)
- Alphabetic
- By Inheritance
- AggregateByIndex
- HigherOrderFunction
- ExpectsInputTypes
- DeclarativeAggregate
- Unevaluable
- Serializable
- Serializable
- AggregateFunction
- Expression
- TreeNode
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
implicit
class
RichAttribute extends AnyRef
- Definition Classes
- DeclarativeAggregate
Abstract Value Members
-
abstract
def
arr: Expression
The array over which we're aggregating
-
abstract
def
canEqual(that: Any): Boolean
- Definition Classes
- Equals
-
abstract
def
evaluate: Expression
Function to turn a buffer into the actual output
-
abstract
def
initialValue: Expression
The initial value for each element in the aggregation buffer
-
abstract
def
merge: Expression
Function to merge two buffers' elements
-
abstract
def
productArity: Int
- Definition Classes
- Product
-
abstract
def
productElement(n: Int): Any
- Definition Classes
- Product
-
abstract
def
update: Expression
Function to update an element of the buffer with a new input element
- abstract def withBoundExprs(newUpdate: Expression, newMerge: Expression, newEvaluate: Expression): AggregateByIndex
Concrete 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
aggBufferAttributes: Seq[AttributeReference]
- Definition Classes
- AggregateByIndex → AggregateFunction
-
final
def
aggBufferSchema: StructType
- Definition Classes
- DeclarativeAggregate → AggregateFunction
-
def
apply(number: Int): TreeNode[_]
- Definition Classes
- TreeNode
-
def
argString: String
- Definition Classes
- TreeNode
-
def
argumentTypes: Seq[ADT]
- Definition Classes
- AggregateByIndex → HigherOrderFunction
-
def
arguments: Seq[Expression]
- Definition Classes
- AggregateByIndex → HigherOrderFunction
-
lazy val
argumentsResolved: Boolean
- Definition Classes
- HigherOrderFunction
-
def
asCode: String
- Definition Classes
- TreeNode
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
bind(f: (Expression, Seq[(DataType, Boolean)]) ⇒ LambdaFunction): AggregateByIndex
To create bound lambda functions, we bind each of the child higher order functions, extract their bound lambda functions, and then copy.
To create bound lambda functions, we bind each of the child higher order functions, extract their bound lambda functions, and then copy.
- Definition Classes
- AggregateByIndex → HigherOrderFunction
-
val
buffer: AttributeReference
- Attributes
- protected
-
lazy val
canonicalized: Expression
- Definition Classes
- Expression
-
def
checkArgumentDataTypes(): TypeCheckResult
- Definition Classes
- HigherOrderFunction
-
def
checkInputDataTypes(): TypeCheckResult
- Definition Classes
- ExpectsInputTypes → Expression
-
def
children: Seq[Expression]
- Definition Classes
- HigherOrderFunction → TreeNode
-
def
childrenResolved: Boolean
- Definition Classes
- Expression
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
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
-
lazy val
containsChild: Set[TreeNode[_]]
- Definition Classes
- TreeNode
-
def
dataType: DataType
- Definition Classes
- AggregateByIndex → Expression
-
def
defaultResult: Option[Literal]
- Definition Classes
- AggregateFunction
-
lazy val
deterministic: Boolean
- Definition Classes
- Expression
-
final
def
doGenCode(ctx: CodegenContext, ev: ExprCode): ExprCode
- Attributes
- protected
- Definition Classes
- Unevaluable → Expression
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
eval(input: InternalRow): Any
- Definition Classes
- Unevaluable → Expression
-
lazy val
evaluateExpression: Expression
- Definition Classes
- AggregateByIndex → DeclarativeAggregate
-
def
fastEquals(other: TreeNode[_]): Boolean
- Definition Classes
- TreeNode
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
find(f: (Expression) ⇒ Boolean): Option[Expression]
- Definition Classes
- TreeNode
-
def
flatArguments: Iterator[Any]
- Attributes
- protected
- Definition Classes
- Expression
-
def
flatMap[A](f: (Expression) ⇒ TraversableOnce[A]): Seq[A]
- Definition Classes
- TreeNode
-
final
def
foldable: Boolean
- Definition Classes
- AggregateFunction → Expression
-
def
foreach(f: (Expression) ⇒ Unit): Unit
- Definition Classes
- TreeNode
-
def
foreachUp(f: (Expression) ⇒ Unit): Unit
- Definition Classes
- TreeNode
-
def
functionTypes: Seq[ADT]
- Definition Classes
- AggregateByIndex → HigherOrderFunction
-
def
functions: Seq[Expression]
- Definition Classes
- AggregateByIndex → HigherOrderFunction
-
lazy val
functionsForEval: Seq[Expression]
- Definition Classes
- HigherOrderFunction
- Annotations
- @transient()
-
def
genCode(ctx: CodegenContext): ExprCode
- Definition Classes
- Expression
-
def
generateTreeString(depth: Int, lastChildren: Seq[Boolean], builder: StringBuilder, verbose: Boolean, prefix: String, addSuffix: Boolean): StringBuilder
- Definition Classes
- TreeNode
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- TreeNode → AnyRef → Any
-
lazy val
initialValues: Seq[Expression]
- Definition Classes
- AggregateByIndex → DeclarativeAggregate
-
def
innerChildren: Seq[TreeNode[_]]
- Attributes
- protected
- Definition Classes
- TreeNode
-
final
lazy val
inputAggBufferAttributes: Seq[AttributeReference]
- Definition Classes
- DeclarativeAggregate → AggregateFunction
-
def
inputTypes: Seq[AbstractDataType]
- Definition Classes
- HigherOrderFunction → ExpectsInputTypes
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
jsonFields: List[JField]
- 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
-
lazy val
mergeExpressions: Seq[Expression]
- Definition Classes
- AggregateByIndex → DeclarativeAggregate
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nodeName: String
- Definition Classes
- TreeNode
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
nullable: Boolean
- Definition Classes
- AggregateByIndex → HigherOrderFunction → 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
- AggregateByIndex → Expression
-
def
productIterator: Iterator[Any]
- Definition Classes
- Product
-
def
productPrefix: String
- Definition Classes
- Product
-
def
references: AttributeSet
- Definition Classes
- Expression
-
lazy val
resolved: Boolean
- Definition Classes
- HigherOrderFunction → Expression
-
def
semanticEquals(other: Expression): Boolean
- Definition Classes
- Expression
-
def
semanticHash(): Int
- Definition Classes
- Expression
-
def
simpleString: String
- Definition Classes
- Expression → TreeNode
-
def
sql(isDistinct: Boolean): String
- Definition Classes
- AggregateFunction
-
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
toAggString(isDistinct: Boolean): String
- Definition Classes
- AggregateFunction
-
def
toAggregateExpression(isDistinct: Boolean): AggregateExpression
- Definition Classes
- AggregateFunction
-
def
toAggregateExpression(): AggregateExpression
- Definition Classes
- AggregateFunction
-
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
transformUp(rule: PartialFunction[Expression, Expression]): Expression
- Definition Classes
- TreeNode
-
def
treeString(verbose: Boolean, addSuffix: Boolean): String
- Definition Classes
- TreeNode
-
def
treeString: String
- Definition Classes
- TreeNode
-
lazy val
updateExpressions: Seq[Expression]
- Definition Classes
- AggregateByIndex → DeclarativeAggregate
-
final
def
verboseString: String
- Definition Classes
- Expression → TreeNode
-
def
verboseStringWithSuffix: String
- Definition Classes
- TreeNode
-
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
- @native() @throws( ... )
-
def
withNewChildren(newChildren: Seq[Expression]): Expression
- Definition Classes
- TreeNode