Package

org.apache.spark.sql.catalyst

expressions

Permalink

package expressions

A set of classes that can be used to represent trees of relational expressions. A key goal of the expression library is to hide the details of naming and scoping from developers who want to manipulate trees of relational operators. As such, the library defines a special type of expression, a NamedExpression in addition to the standard collection of expressions.

Standard Expressions

A library of standard expressions (e.g., Add, EqualTo), aggregates (e.g., SUM, COUNT), and other computations (e.g. UDFs). Each expression type is capable of determining its output schema as a function of its children's output schema.

Named Expressions

Some expression are named and thus can be referenced by later operators in the dataflow graph. The two types of named expressions are AttributeReferences and Aliases. AttributeReferences refer to attributes of the input tuple for a given operator and form the leaves of some expression trees. Aliases assign a name to intermediate computations. For example, in the SQL statement SELECT a+b AS c FROM ..., the expressions a and b would be represented by AttributeReferences and c would be represented by an Alias.

During analysis, all named expressions are assigned a globally unique expression id, which can be used for equality comparisons. While the original names are kept around for debugging purposes, they should never be used to check if two attributes refer to the same value, as plan transformations can result in the introduction of naming ambiguity. For example, consider a plan that contains subqueries, both of which are reading from the same table. If an optimization removes the subqueries, scoping information would be destroyed, eliminating the ability to reason about which subquery produced a given attribute.

Evaluation

The result of expressions can be evaluated using the Expression.apply(Row) method.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. expressions
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Abs(child: Expression) extends UnaryExpression with ExpectsInputTypes with NullIntolerant with Product with Serializable

    Permalink

    A function that get the absolute value of the numeric value.

    A function that get the absolute value of the numeric value.

    Annotations
    @ExpressionDescription()
  2. case class Acos(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  3. case class Add(left: Expression, right: Expression) extends BinaryArithmetic with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  4. case class AddMonths(startDate: Expression, numMonths: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the date that is num_months after start_date.

    Returns the date that is num_months after start_date.

    Annotations
    @ExpressionDescription()
  5. abstract class AggregateWindowFunction extends DeclarativeAggregate with WindowFunction

    Permalink
  6. case class Alias(child: Expression, name: String)(exprId: ExprId = NamedExpression.newExprId, qualifier: Option[String] = None, explicitMetadata: Option[Metadata] = None, isGenerated: Boolean = false) extends UnaryExpression with NamedExpression with Product with Serializable

    Permalink

    Used to assign a new name to a computation.

    Used to assign a new name to a computation. For example the SQL expression "1 + 1 AS a" could be represented as follows: Alias(Add(Literal(1), Literal(1)), "a")()

    Note that exprId and qualifiers are in a separate parameter list because we only pattern match on child and name.

    child

    The computation being performed

    name

    The name to be associated with the result of computing child.

    exprId

    A globally unique id used to check if an AttributeReference refers to this alias. Auto-assigned if left blank.

    qualifier

    An optional string that can be used to referred to this attribute in a fully qualified way. Consider the examples tableName.name, subQueryAlias.name. tableName and subQueryAlias are possible qualifiers.

    explicitMetadata

    Explicit metadata associated with this alias that overwrites child's.

    isGenerated

    A flag to indicate if this alias is generated by Catalyst

  7. case class And(left: Expression, right: Expression) extends BinaryOperator with Predicate with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  8. case class ArrayContains(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Checks if the array (left) has the element (right)

    Checks if the array (left) has the element (right)

    Annotations
    @ExpressionDescription()
  9. case class Ascii(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the numeric value of the first character of str.

    Returns the numeric value of the first character of str.

    Annotations
    @ExpressionDescription()
  10. case class Asin(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  11. case class AssertTrue(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function throws an exception if 'condition' is not true.

    A function throws an exception if 'condition' is not true.

    Annotations
    @ExpressionDescription()
  12. case class AtLeastNNonNulls(n: Int, children: Seq[Expression]) extends Expression with Predicate with Product with Serializable

    Permalink

    A predicate that is evaluated to be true if there are at least n non-null and non-NaN values.

  13. case class Atan(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  14. case class Atan2(left: Expression, right: Expression) extends BinaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  15. abstract class Attribute extends LeafExpression with NamedExpression with NullIntolerant

    Permalink
  16. class AttributeEquals extends AnyRef

    Permalink
    Attributes
    protected
  17. class AttributeMap[A] extends Map[Attribute, A] with Serializable

    Permalink
  18. case class AttributeReference(name: String, dataType: DataType, nullable: Boolean = true, metadata: Metadata = Metadata.empty)(exprId: ExprId = NamedExpression.newExprId, qualifier: Option[String] = None, isGenerated: Boolean = false) extends Attribute with Unevaluable with Product with Serializable

    Permalink

    A reference to an attribute produced by another operator in the tree.

    A reference to an attribute produced by another operator in the tree.

    name

    The name of this attribute, should only be used during analysis or for debugging.

    dataType

    The DataType of this attribute.

    nullable

    True if null is a valid value for this attribute.

    metadata

    The metadata of this attribute.

    exprId

    A globally unique id used to check if different AttributeReferences refer to the same attribute.

    qualifier

    An optional string that can be used to referred to this attribute in a fully qualified way. Consider the examples tableName.name, subQueryAlias.name. tableName and subQueryAlias are possible qualifiers.

    isGenerated

    A flag to indicate if this reference is generated by Catalyst

  19. implicit class AttributeSeq extends AnyRef

    Permalink

    Helper functions for working with Seq[Attribute].

  20. class AttributeSet extends Traversable[Attribute] with Serializable

    Permalink

    A Set designed to hold AttributeReference objects, that performs equality checking using expression id instead of standard java equality.

    A Set designed to hold AttributeReference objects, that performs equality checking using expression id instead of standard java equality. Using expression id means that these sets will correctly test for membership, even when the AttributeReferences in question differ cosmetically (e.g., the names have different capitalizations).

    Note that we do not override equality for Attribute references as it is really weird when AttributeReference("a"...) == AttributeReference("b", ...). This tactic leads to broken tests, and also makes doing transformations hard (we always try keep older trees instead of new ones when the transformation was a no-op).

  21. case class BRound(child: Expression, scale: Expression) extends RoundBase with Serializable with ImplicitCastInputTypes with Product

    Permalink

    Round an expression to d decimal places using HALF_EVEN rounding mode, also known as Gaussian rounding or bankers' rounding.

    Round an expression to d decimal places using HALF_EVEN rounding mode, also known as Gaussian rounding or bankers' rounding. round(2.5) = 2.0, round(3.5) = 4.0.

    Annotations
    @ExpressionDescription()
  22. case class Base64(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Converts the argument from binary to a base 64 string.

    Converts the argument from binary to a base 64 string.

    Annotations
    @ExpressionDescription()
  23. trait BaseGenericInternalRow extends InternalRow

    Permalink

    An extended version of InternalRow that implements all special getters, toString and equals/hashCode by genericGet.

  24. case class Bin(child: Expression) extends UnaryExpression with Serializable with ImplicitCastInputTypes with Product

    Permalink
    Annotations
    @ExpressionDescription()
  25. abstract class BinaryArithmetic extends BinaryOperator

    Permalink
  26. abstract class BinaryComparison extends BinaryOperator with Predicate

    Permalink
  27. abstract class BinaryExpression extends Expression

    Permalink

    An expression with two inputs and one output.

    An expression with two inputs and one output. The output is by default evaluated to null if any input is evaluated to null.

  28. abstract class BinaryMathExpression extends BinaryExpression with Serializable with ImplicitCastInputTypes

    Permalink

    A binary expression specifically for math functions that take two Doubles as input and returns a Double.

  29. abstract class BinaryOperator extends BinaryExpression with ExpectsInputTypes

    Permalink

    A BinaryExpression that is an operator, with two properties:

    A BinaryExpression that is an operator, with two properties:

    1. The string representation is "x symbol y", rather than "funcName(x, y)". 2. Two inputs are expected to the be same type. If the two inputs have different types, the analyzer will find the tightest common type and do the proper type casting.

  30. case class BitwiseAnd(left: Expression, right: Expression) extends BinaryArithmetic with Product with Serializable

    Permalink

    A function that calculates bitwise and(&) of two numbers.

    A function that calculates bitwise and(&) of two numbers.

    Code generation inherited from BinaryArithmetic.

    Annotations
    @ExpressionDescription()
  31. case class BitwiseNot(child: Expression) extends UnaryExpression with ExpectsInputTypes with Product with Serializable

    Permalink

    A function that calculates bitwise not(~) of a number.

    A function that calculates bitwise not(~) of a number.

    Annotations
    @ExpressionDescription()
  32. case class BitwiseOr(left: Expression, right: Expression) extends BinaryArithmetic with Product with Serializable

    Permalink

    A function that calculates bitwise or(|) of two numbers.

    A function that calculates bitwise or(|) of two numbers.

    Code generation inherited from BinaryArithmetic.

    Annotations
    @ExpressionDescription()
  33. case class BitwiseXor(left: Expression, right: Expression) extends BinaryArithmetic with Product with Serializable

    Permalink

    A function that calculates bitwise xor of two numbers.

    A function that calculates bitwise xor of two numbers.

    Code generation inherited from BinaryArithmetic.

    Annotations
    @ExpressionDescription()
  34. case class BoundReference(ordinal: Int, dataType: DataType, nullable: Boolean) extends LeafExpression with Product with Serializable

    Permalink

    A bound reference points to a specific slot in the input tuple, allowing the actual value to be retrieved more efficiently.

    A bound reference points to a specific slot in the input tuple, allowing the actual value to be retrieved more efficiently. However, since operations like column pruning can change the layout of intermediate tuples, BindReferences should be run after all such transformations.

  35. case class CaseWhen(branches: Seq[(Expression, Expression)], elseValue: Option[Expression] = None) extends CaseWhenBase with CodegenFallback with Serializable with Product

    Permalink

    Case statements of the form "CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END".

    Case statements of the form "CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END". When a = true, returns b; when c = true, returns d; else returns e.

    branches

    seq of (branch condition, branch value)

    elseValue

    optional value for the else branch

    Annotations
    @ExpressionDescription()
  36. abstract class CaseWhenBase extends Expression with Serializable

    Permalink

    Abstract parent class for common logic in CaseWhen and CaseWhenCodegen.

  37. case class CaseWhenCodegen(branches: Seq[(Expression, Expression)], elseValue: Option[Expression] = None) extends CaseWhenBase with Serializable with Product

    Permalink

    CaseWhen expression used when code generation condition is satisfied.

    CaseWhen expression used when code generation condition is satisfied. OptimizeCodegen optimizer replaces CaseWhen into CaseWhenCodegen.

    branches

    seq of (branch condition, branch value)

    elseValue

    optional value for the else branch

  38. case class Cast(child: Expression, dataType: DataType) extends UnaryExpression with NullIntolerant with Product with Serializable

    Permalink

    Cast the child expression to the target data type.

  39. case class Cbrt(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  40. case class Ceil(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  41. case class CheckOverflow(child: Expression, dataType: DecimalType) extends UnaryExpression with Product with Serializable

    Permalink

    Rounds the decimal to given scale and check whether the decimal can fit in provided precision or not, returns null if not.

  42. case class Coalesce(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    An expression that is evaluated to the first non-null input.

    An expression that is evaluated to the first non-null input.

    coalesce(1, 2) => 1
    coalesce(null, 1, 2) => 1
    coalesce(null, null, 2) => 2
    coalesce(null, null, null) => null
    Annotations
    @ExpressionDescription()
  43. case class Concat(children: Seq[Expression]) extends Expression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    An expression that concatenates multiple input strings into a single string.

    An expression that concatenates multiple input strings into a single string. If any input is null, concat returns null.

    Annotations
    @ExpressionDescription()
  44. case class ConcatWs(children: Seq[Expression]) extends Expression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    An expression that concatenates multiple input strings or array of strings into a single string, using a given separator (the first child).

    An expression that concatenates multiple input strings or array of strings into a single string, using a given separator (the first child).

    Returns null if the separator is null. Otherwise, concat_ws skips all null values.

    Annotations
    @ExpressionDescription()
  45. case class Contains(left: Expression, right: Expression) extends BinaryExpression with StringPredicate with Product with Serializable

    Permalink

    A function that returns true if the string left contains the string right.

  46. case class Conv(numExpr: Expression, fromBaseExpr: Expression, toBaseExpr: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Convert a num from one base to another

    Convert a num from one base to another

    numExpr

    the number to be converted

    fromBaseExpr

    from which base

    toBaseExpr

    to which base

    Annotations
    @ExpressionDescription()
  47. case class Cos(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  48. case class Cosh(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  49. case class Crc32(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that computes a cyclic redundancy check value and returns it as a bigint For input of type BinaryType

    A function that computes a cyclic redundancy check value and returns it as a bigint For input of type BinaryType

    Annotations
    @ExpressionDescription()
  50. case class CreateArray(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    Returns an Array containing the evaluation of all children expressions.

    Returns an Array containing the evaluation of all children expressions.

    Annotations
    @ExpressionDescription()
  51. case class CreateMap(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    Returns a catalyst Map containing the evaluation of all children expressions as keys and values.

    Returns a catalyst Map containing the evaluation of all children expressions as keys and values. The children are a flatted sequence of kv pairs, e.g. (key1, value1, key2, value2, ...)

    Annotations
    @ExpressionDescription()
  52. case class CreateNamedStruct(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    Creates a struct with the given field names and values

    Creates a struct with the given field names and values

    children

    Seq(name1, val1, name2, val2, ...)

    Annotations
    @ExpressionDescription()
  53. case class CreateNamedStructUnsafe(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    Creates a struct with the given field names and values.

    Creates a struct with the given field names and values. This is a variant that returns UnsafeRow directly. The unsafe projection operator replaces CreateStruct with this expression automatically at runtime.

    children

    Seq(name1, val1, name2, val2, ...)

  54. case class CreateStruct(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    Returns a Row containing the evaluation of all children expressions.

    Returns a Row containing the evaluation of all children expressions.

    Annotations
    @ExpressionDescription()
  55. case class CreateStructUnsafe(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    Returns a Row containing the evaluation of all children expressions.

    Returns a Row containing the evaluation of all children expressions. This is a variant that returns UnsafeRow directly. The unsafe projection operator replaces CreateStruct with this expression automatically at runtime.

  56. case class Cube(groupByExprs: Seq[Expression]) extends Expression with GroupingSet with Product with Serializable

    Permalink
  57. case class CumeDist() extends RowNumberLike with SizeBasedWindowFunction with Product with Serializable

    Permalink

    The CumeDist function computes the position of a value relative to a all values in the partition.

    The CumeDist function computes the position of a value relative to a all values in the partition. The result is the number of rows preceding or equal to the current row in the ordering of the partition divided by the total number of rows in the window partition. Any tie values in the ordering will evaluate to the same position.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    Annotations
    @ExpressionDescription()
  58. case class CurrentDate() extends LeafExpression with CodegenFallback with Product with Serializable

    Permalink

    Returns the current date at the start of query evaluation.

    Returns the current date at the start of query evaluation. All calls of current_date within the same query return the same value.

    There is no code generation since this expression should get constant folded by the optimizer.

    Annotations
    @ExpressionDescription()
  59. case class CurrentTimestamp() extends LeafExpression with CodegenFallback with Product with Serializable

    Permalink

    Returns the current timestamp at the start of query evaluation.

    Returns the current timestamp at the start of query evaluation. All calls of current_timestamp within the same query return the same value.

    There is no code generation since this expression should get constant folded by the optimizer.

    Annotations
    @ExpressionDescription()
  60. case class DateAdd(startDate: Expression, days: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Adds a number of days to startdate.

    Adds a number of days to startdate.

    Annotations
    @ExpressionDescription()
  61. case class DateDiff(endDate: Expression, startDate: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the number of days from startDate to endDate.

    Returns the number of days from startDate to endDate.

    Annotations
    @ExpressionDescription()
  62. case class DateFormatClass(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  63. case class DateSub(startDate: Expression, days: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Subtracts a number of days to startdate.

    Subtracts a number of days to startdate.

    Annotations
    @ExpressionDescription()
  64. case class DayOfMonth(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  65. case class DayOfYear(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  66. case class Decode(bin: Expression, charset: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Decodes the first argument into a String using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16').

    Decodes the first argument into a String using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16'). If either argument is null, the result will also be null.

    Annotations
    @ExpressionDescription()
  67. case class DenseRank(children: Seq[Expression]) extends RankLike with Product with Serializable

    Permalink

    The DenseRank function computes the rank of a value in a group of values.

    The DenseRank function computes the rank of a value in a group of values. The result is one plus the previously assigned rank value. Unlike Rank, DenseRank will not produce gaps in the ranking sequence.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    children

    to base the rank on; a change in the value of one the children will trigger a change in rank. This is an internal parameter and will be assigned by the Analyser.

    Annotations
    @ExpressionDescription()
  68. case class Divide(left: Expression, right: Expression) extends BinaryArithmetic with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  69. case class Encode(value: Expression, charset: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Encodes the first argument into a BINARY using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16').

    Encodes the first argument into a BINARY using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16'). If either argument is null, the result will also be null.

    Annotations
    @ExpressionDescription()
  70. case class EndsWith(left: Expression, right: Expression) extends BinaryExpression with StringPredicate with Product with Serializable

    Permalink

    A function that returns true if the string left ends with the string right.

  71. case class EqualNullSafe(left: Expression, right: Expression) extends BinaryComparison with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  72. case class EqualTo(left: Expression, right: Expression) extends BinaryComparison with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  73. class EquivalentExpressions extends AnyRef

    Permalink

    This class is used to compute equality of (sub)expression trees.

    This class is used to compute equality of (sub)expression trees. Expressions can be added to this class and they subsequently query for expression equality. Expression trees are considered equal if for the same input(s), the same result is produced.

  74. case class EulerNumber() extends LeafMathExpression with Product with Serializable

    Permalink

    Euler's number.

    Euler's number. Note that there is no code generation because this is only evaluated by the optimizer during constant folding.

    Annotations
    @ExpressionDescription()
  75. case class Exists(query: LogicalPlan, exprId: ExprId = NamedExpression.newExprId) extends SubqueryExpression with Predicate with Unevaluable with Product with Serializable

    Permalink

    The Exists expression checks if a row exists in a subquery given some correlated condition.

    The Exists expression checks if a row exists in a subquery given some correlated condition. For example (SQL):

    SELECT  *
    FROM    a
    WHERE   EXISTS (SELECT  *
                    FROM    b
                    WHERE   b.id = a.id)
  76. case class Exp(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  77. trait ExpectsInputTypes extends Expression

    Permalink

    An trait that gets mixin to define the expected input types of an expression.

    An trait that gets mixin to define the expected input types of an expression.

    This trait is typically used by operator expressions (e.g. Add, Subtract) to define expected input types without any implicit casting.

    Most function expressions (e.g. Substring should extends ImplicitCastInputTypes) instead.

  78. case class Explode(child: Expression) extends UnaryExpression with Generator with CodegenFallback with Product with Serializable

    Permalink

    Given an input array produces a sequence of rows for each value in the array.

    Given an input array produces a sequence of rows for each value in the array.

    Annotations
    @ExpressionDescription()
  79. case class Expm1(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  80. case class ExprId(id: Long, jvmId: UUID) extends Product with Serializable

    Permalink

    A globally unique id for a given named expression.

    A globally unique id for a given named expression. Used to identify which attribute output by a relation is being referenced in a subsequent computation.

    The id field is unique within a given JVM, while the uuid is used to uniquely identify JVMs.

  81. abstract class Expression extends TreeNode[Expression]

    Permalink

    An expression in Catalyst.

    An expression in Catalyst.

    If an expression wants to be exposed in the function registry (so users can call it with "name(arguments...)", the concrete implementation must be a case class whose constructor arguments are all Expressions types. See Substring for an example.

    There are a few important traits:

    - Nondeterministic: an expression that is not deterministic. - Unevaluable: an expression that is not supposed to be evaluated. - CodegenFallback: an expression that does not have code gen implemented and falls back to interpreted mode.

    - LeafExpression: an expression that has no child. - UnaryExpression: an expression that has one child. - BinaryExpression: an expression that has two children. - TernaryExpression: an expression that has three children. - BinaryOperator: a special case of BinaryExpression that requires two children to have the same output data type.

  82. class ExpressionDescription extends Annotation with Annotation with ClassfileAnnotation

    Permalink
  83. class ExpressionInfo extends AnyRef

    Permalink
  84. class ExpressionSet extends Set[Expression]

    Permalink

    A Set where membership is determined based on a canonical representation of an Expression (i.e.

    A Set where membership is determined based on a canonical representation of an Expression (i.e. one that attempts to ignore cosmetic differences). See Canonicalize for more details.

    Internally this set uses the canonical representation, but keeps also track of the original expressions to ease debugging. Since different expressions can share the same canonical representation, this means that operations that extract expressions from this set are only guaranteed to see at least one such expression. For example:

    val set = AttributeSet(a + 1, 1 + a)
    
    set.iterator => Iterator(a + 1)
    set.contains(a + 1) => true
    set.contains(1 + a) => true
    set.contains(a + 2) => false
  85. trait ExtractValue extends Expression

    Permalink
  86. case class Factorial(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  87. case class FindInSet(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that returns the index (1-based) of the given string (left) in the comma- delimited list (right).

    A function that returns the index (1-based) of the given string (left) in the comma- delimited list (right). Returns 0, if the string wasn't found or if the given string (left) contains a comma.

    Annotations
    @ExpressionDescription()
  88. case class Floor(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  89. case class FormatNumber(x: Expression, d: Expression) extends BinaryExpression with ExpectsInputTypes with Product with Serializable

    Permalink

    Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string.

    Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has no decimal point or fractional part.

    Annotations
    @ExpressionDescription()
  90. case class FormatString(children: Expression*) extends Expression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the input formatted according do printf-style format strings

    Returns the input formatted according do printf-style format strings

    Annotations
    @ExpressionDescription()
  91. sealed trait FrameBoundary extends AnyRef

    Permalink

    The trait used to represent the type of a Window Frame Boundary.

  92. sealed trait FrameType extends AnyRef

    Permalink

    The trait used to represent the type of a Window Frame.

  93. case class FromUTCTimestamp(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Assumes given timestamp is UTC and converts to given timezone.

    Assumes given timestamp is UTC and converts to given timezone.

    Annotations
    @ExpressionDescription()
  94. case class FromUnixTime(sec: Expression, format: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Converts the number of seconds from unix epoch (1970-01-01 00:00:00 UTC) to a string representing the timestamp of that moment in the current system time zone in the given format.

    Converts the number of seconds from unix epoch (1970-01-01 00:00:00 UTC) to a string representing the timestamp of that moment in the current system time zone in the given format. If the format is missing, using format like "1970-01-01 00:00:00". Note that hive Language Manual says it returns 0 if fail, but in fact it returns null.

    Annotations
    @ExpressionDescription()
  95. trait Generator extends Expression

    Permalink

    An expression that produces zero or more rows given a single input row.

    An expression that produces zero or more rows given a single input row.

    Generators produce multiple output rows instead of a single value like other expressions, and thus they must have a schema to associate with the rows that are output.

    However, unlike row producing relational operators, which are either leaves or determine their output schema functionally from their input, generators can contain other expressions that might result in their modification by rules. This structure means that they might be copied multiple times after first determining their output schema. If a new output schema is created for each copy references up the tree might be rendered invalid. As a result generators must instead define a function makeOutput which is called only once when the schema is first requested. The attributes produced by this function will be automatically copied anytime rules result in changes to the Generator or its children.

  96. class GenericInternalRow extends InternalRow with BaseGenericInternalRow

    Permalink

    A internal row implementation that uses an array of objects as the underlying storage.

    A internal row implementation that uses an array of objects as the underlying storage. Note that, while the array is not copied, and thus could technically be mutated after creation, this is not allowed.

  97. class GenericMutableRow extends MutableRow with BaseGenericInternalRow

    Permalink
  98. class GenericRow extends Row

    Permalink

    A row implementation that uses an array of objects as the underlying storage.

    A row implementation that uses an array of objects as the underlying storage. Note that, while the array is not copied, and thus could technically be mutated after creation, this is not allowed.

  99. class GenericRowWithSchema extends GenericRow

    Permalink
  100. case class GetArrayItem(child: Expression, ordinal: Expression) extends BinaryExpression with ExpectsInputTypes with ExtractValue with Product with Serializable

    Permalink

    Returns the field at ordinal in the Array child.

    Returns the field at ordinal in the Array child.

    We need to do type checking here as ordinal expression maybe unresolved.

  101. case class GetArrayStructFields(child: Expression, field: StructField, ordinal: Int, numFields: Int, containsNull: Boolean) extends UnaryExpression with ExtractValue with Product with Serializable

    Permalink

    For a child whose data type is an array of structs, extracts the ordinal-th fields of all array elements, and returns them as a new array.

    For a child whose data type is an array of structs, extracts the ordinal-th fields of all array elements, and returns them as a new array.

    No need to do type checking since it is handled by ExtractValue.

  102. case class GetJsonObject(json: Expression, path: Expression) extends BinaryExpression with ExpectsInputTypes with CodegenFallback with Product with Serializable

    Permalink

    Extracts json object from a json string based on json path specified, and returns json string of the extracted json object.

    Extracts json object from a json string based on json path specified, and returns json string of the extracted json object. It will return null if the input json string is invalid.

    Annotations
    @ExpressionDescription()
  103. case class GetMapValue(child: Expression, key: Expression) extends BinaryExpression with ExpectsInputTypes with ExtractValue with Product with Serializable

    Permalink

    Returns the value of key key in Map child.

    Returns the value of key key in Map child.

    We need to do type checking here as key expression maybe unresolved.

  104. case class GetStructField(child: Expression, ordinal: Int, name: Option[String] = None) extends UnaryExpression with ExtractValue with Product with Serializable

    Permalink

    Returns the value of fields in the Struct child.

    Returns the value of fields in the Struct child.

    No need to do type checking since it is handled by ExtractValue.

    Note that we can pass in the field name directly to keep case preserving in toString. For example, when get field yEAr from <year: int, month: int>, we should pass in yEAr.

  105. case class GreaterThan(left: Expression, right: Expression) extends BinaryComparison with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  106. case class GreaterThanOrEqual(left: Expression, right: Expression) extends BinaryComparison with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  107. case class Greatest(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    A function that returns the greatest value of all parameters, skipping null values.

    A function that returns the greatest value of all parameters, skipping null values. It takes at least 2 parameters, and returns null iff all parameters are null.

    Annotations
    @ExpressionDescription()
  108. case class Grouping(child: Expression) extends Expression with Unevaluable with Product with Serializable

    Permalink

    Indicates whether a specified column expression in a GROUP BY list is aggregated or not.

    Indicates whether a specified column expression in a GROUP BY list is aggregated or not. GROUPING returns 1 for aggregated or 0 for not aggregated in the result set.

  109. case class GroupingID(groupByExprs: Seq[Expression]) extends Expression with Unevaluable with Product with Serializable

    Permalink

    GroupingID is a function that computes the level of grouping.

    GroupingID is a function that computes the level of grouping.

    If groupByExprs is empty, it means all grouping expressions in GroupingSets.

  110. trait GroupingSet extends Expression with CodegenFallback

    Permalink

    A placeholder expression for cube/rollup, which will be replaced by analyzer

  111. abstract class HashExpression[E] extends Expression

    Permalink

    A function that calculates hash value for a group of expressions.

    A function that calculates hash value for a group of expressions. Note that the seed argument is not exposed to users and should only be set inside spark SQL.

    The hash value for an expression depends on its type and seed:

    • null: seed
    • boolean: turn boolean into int, 1 for true, 0 for false, and then use murmur3 to hash this int with seed.
    • byte, short, int: use murmur3 to hash the input as int with seed.
    • long: use murmur3 to hash the long input with seed.
    • float: turn it into int: java.lang.Float.floatToIntBits(input), and hash it.
    • double: turn it into long: java.lang.Double.doubleToLongBits(input), and hash it.
    • decimal: if it's a small decimal, i.e. precision <= 18, turn it into long and hash it. Else, turn it into bytes and hash it.
    • calendar interval: hash microseconds first, and use the result as seed to hash months.
    • binary: use murmur3 to hash the bytes with seed.
    • string: get the bytes of string and hash it.
    • array: The result starts with seed, then use result as seed, recursively calculate hash value for each element, and assign the element hash value to result.
    • map: The result starts with seed, then use result as seed, recursively calculate hash value for each key-value, and assign the key-value hash value to result.
    • struct: The result starts with seed, then use result as seed, recursively calculate hash value for each field, and assign the field hash value to result.

    Finally we aggregate the hash values for each expression by the same way of struct.

  112. case class Hex(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    If the argument is an INT or binary, hex returns the number as a STRING in hexadecimal format.

    If the argument is an INT or binary, hex returns the number as a STRING in hexadecimal format. Otherwise if the number is a STRING, it converts each character into its hex representation and returns the resulting STRING. Negative numbers would be treated as two's complement.

    Annotations
    @ExpressionDescription()
  113. case class Hour(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  114. case class Hypot(left: Expression, right: Expression) extends BinaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  115. case class If(predicate: Expression, trueValue: Expression, falseValue: Expression) extends Expression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  116. case class IfNull(left: Expression, right: Expression) extends Expression with RuntimeReplaceable with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  117. trait ImplicitCastInputTypes extends Expression with ExpectsInputTypes

    Permalink

    A mixin for the analyzer to perform implicit type casting using ImplicitTypeCasts.

  118. case class In(value: Expression, list: Seq[Expression]) extends Expression with Predicate with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Evaluates to true if list contains value.

    Evaluates to true if list contains value.

    Annotations
    @ExpressionDescription()
  119. case class InSet(child: Expression, hset: Set[Any]) extends UnaryExpression with Predicate with Product with Serializable

    Permalink

    Optimized version of In clause, when all filter values of In clause are static.

  120. case class InitCap(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns string, with the first letter of each word in uppercase, all other letters in lowercase.

    Returns string, with the first letter of each word in uppercase, all other letters in lowercase. Words are delimited by whitespace.

    Annotations
    @ExpressionDescription()
  121. case class InputFileName() extends LeafExpression with Nondeterministic with Product with Serializable

    Permalink

    Expression that returns the name of the current file being read.

    Expression that returns the name of the current file being read.

    Annotations
    @ExpressionDescription()
  122. abstract class InterpretedHashFunction extends AnyRef

    Permalink

    Base class for interpreted hash functions.

  123. case class InterpretedMutableProjection(expressions: Seq[Expression]) extends MutableProjection with Product with Serializable

    Permalink

    A MutableProjection that is calculated by calling eval on each of the specified expressions.

    A MutableProjection that is calculated by calling eval on each of the specified expressions.

    expressions

    a sequence of expressions that determine the value of each column of the output row.

  124. class InterpretedOrdering extends Ordering[InternalRow]

    Permalink

    An interpreted row ordering comparator.

  125. class InterpretedProjection extends Projection

    Permalink

    A Projection that is calculated by calling the eval of each of the specified expressions.

  126. case class IsNaN(child: Expression) extends UnaryExpression with Predicate with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Evaluates to true iff it's NaN.

    Evaluates to true iff it's NaN.

    Annotations
    @ExpressionDescription()
  127. case class IsNotNull(child: Expression) extends UnaryExpression with Predicate with Product with Serializable

    Permalink

    An expression that is evaluated to true if the input is not null.

    An expression that is evaluated to true if the input is not null.

    Annotations
    @ExpressionDescription()
  128. case class IsNull(child: Expression) extends UnaryExpression with Predicate with Product with Serializable

    Permalink

    An expression that is evaluated to true if the input is null.

    An expression that is evaluated to true if the input is null.

    Annotations
    @ExpressionDescription()
  129. class JoinedRow extends InternalRow

    Permalink

    A mutable wrapper that makes two rows appear as a single concatenated row.

    A mutable wrapper that makes two rows appear as a single concatenated row. Designed to be instantiated once per thread and reused.

  130. case class JsonTuple(children: Seq[Expression]) extends Expression with Generator with CodegenFallback with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  131. case class Lag(input: Expression, offset: Expression, default: Expression) extends OffsetWindowFunction with Product with Serializable

    Permalink

    The Lag function returns the value of 'x' at 'offset' rows before the current row in the window.

    The Lag function returns the value of 'x' at 'offset' rows before the current row in the window. Offsets start at 0, which is the current row. The offset must be constant integer value. The default offset is 1. When the value of 'x' is null at the offset, or when the offset is smaller than the window, the default expression is evaluated.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    input

    expression to evaluate 'offset' rows before the current row.

    offset

    rows to jump back in the partition.

    default

    to use when the input value is null or when the offset is smaller than the window.

    Annotations
    @ExpressionDescription()
  132. case class LastDay(startDate: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the last day of the month which the date belongs to.

    Returns the last day of the month which the date belongs to.

    Annotations
    @ExpressionDescription()
  133. case class Lead(input: Expression, offset: Expression, default: Expression) extends OffsetWindowFunction with Product with Serializable

    Permalink

    The Lead function returns the value of 'x' at 'offset' rows after the current row in the window.

    The Lead function returns the value of 'x' at 'offset' rows after the current row in the window. Offsets start at 0, which is the current row. The offset must be constant integer value. The default offset is 1. When the value of 'x' is null at the offset, or when the offset is larger than the window, the default expression is evaluated.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    input

    expression to evaluate 'offset' rows after the current row.

    offset

    rows to jump ahead in the partition.

    default

    to use when the input value is null or when the offset is larger than the window.

    Annotations
    @ExpressionDescription()
  134. abstract class LeafExpression extends Expression

    Permalink

    A leaf expression, i.e.

    A leaf expression, i.e. one without any child expressions.

  135. abstract class LeafMathExpression extends LeafExpression with CodegenFallback

    Permalink

    A leaf expression specifically for math constants.

    A leaf expression specifically for math constants. Math constants expect no input.

    There is no code generation because they should get constant folded by the optimizer.

  136. case class Least(children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    A function that returns the least value of all parameters, skipping null values.

    A function that returns the least value of all parameters, skipping null values. It takes at least 2 parameters, and returns null iff all parameters are null.

    Annotations
    @ExpressionDescription()
  137. case class Length(child: Expression) extends UnaryExpression with ExpectsInputTypes with Product with Serializable

    Permalink

    A function that return the length of the given string or binary expression.

    A function that return the length of the given string or binary expression.

    Annotations
    @ExpressionDescription()
  138. case class LessThan(left: Expression, right: Expression) extends BinaryComparison with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  139. case class LessThanOrEqual(left: Expression, right: Expression) extends BinaryComparison with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  140. case class Levenshtein(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that return the Levenshtein distance between the two given strings.

    A function that return the Levenshtein distance between the two given strings.

    Annotations
    @ExpressionDescription()
  141. case class Like(left: Expression, right: Expression) extends BinaryExpression with StringRegexExpression with Product with Serializable

    Permalink

    Simple RegEx pattern matching function

    Simple RegEx pattern matching function

    Annotations
    @ExpressionDescription()
  142. case class ListQuery(query: LogicalPlan, exprId: ExprId = NamedExpression.newExprId) extends SubqueryExpression with Unevaluable with Product with Serializable

    Permalink

    A ListQuery expression defines the query which we want to search in an IN subquery expression.

    A ListQuery expression defines the query which we want to search in an IN subquery expression. It should and can only be used in conjunction with a IN expression.

    For example (SQL):

    SELECT  *
    FROM    a
    WHERE   a.id IN (SELECT  id
                     FROM    b)
  143. case class Literal(value: Any, dataType: DataType) extends LeafExpression with CodegenFallback with Product with Serializable

    Permalink

    In order to do type checking, use Literal.create() instead of constructor

  144. case class Log(child: Expression) extends UnaryLogExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  145. case class Log10(child: Expression) extends UnaryLogExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  146. case class Log1p(child: Expression) extends UnaryLogExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  147. case class Log2(child: Expression) extends UnaryLogExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  148. case class Logarithm(left: Expression, right: Expression) extends BinaryMathExpression with Product with Serializable

    Permalink

    Computes the logarithm of a number.

    Computes the logarithm of a number.

    left

    the logarithm base, default to e.

    right

    the number to compute the logarithm of.

    Annotations
    @ExpressionDescription()
  149. case class Lower(child: Expression) extends UnaryExpression with String2StringExpression with Product with Serializable

    Permalink

    A function that converts the characters of a string to lowercase.

    A function that converts the characters of a string to lowercase.

    Annotations
    @ExpressionDescription()
  150. case class MakeDecimal(child: Expression, precision: Int, scale: Int) extends UnaryExpression with Product with Serializable

    Permalink

    Create a Decimal from an unscaled Long value.

    Create a Decimal from an unscaled Long value. Note: this expression is internal and created only by the optimizer, we don't need to do type check for it.

  151. case class MaxOf(left: Expression, right: Expression) extends BinaryArithmetic with NonSQLExpression with Product with Serializable

    Permalink
  152. case class Md5(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that calculates an MD5 128-bit checksum and returns it as a hex string For input of type BinaryType

    A function that calculates an MD5 128-bit checksum and returns it as a hex string For input of type BinaryType

    Annotations
    @ExpressionDescription()
  153. case class MinOf(left: Expression, right: Expression) extends BinaryArithmetic with NonSQLExpression with Product with Serializable

    Permalink
  154. case class Minute(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  155. case class Month(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  156. case class MonthsBetween(date1: Expression, date2: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns number of months between dates date1 and date2.

    Returns number of months between dates date1 and date2.

    Annotations
    @ExpressionDescription()
  157. case class Multiply(left: Expression, right: Expression) extends BinaryArithmetic with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  158. case class Murmur3Hash(children: Seq[Expression], seed: Int) extends HashExpression[Int] with Product with Serializable

    Permalink

    A MurMur3 Hash expression.

    A MurMur3 Hash expression.

    We should use this hash function for both shuffle and bucket, so that we can guarantee shuffle and bucketing have same data distribution.

    Annotations
    @ExpressionDescription()
  159. final class MutableAny extends MutableValue

    Permalink
  160. final class MutableBoolean extends MutableValue

    Permalink
  161. final class MutableByte extends MutableValue

    Permalink
  162. final class MutableDouble extends MutableValue

    Permalink
  163. final class MutableFloat extends MutableValue

    Permalink
  164. final class MutableInt extends MutableValue

    Permalink
  165. final class MutableLong extends MutableValue

    Permalink
  166. abstract class MutableProjection extends Projection

    Permalink

    Converts a InternalRow to another Row given a sequence of expression that define each column of the new row.

    Converts a InternalRow to another Row given a sequence of expression that define each column of the new row. If the schema of the input row is specified, then the given expression will be bound to that schema.

    In contrast to a normal projection, a MutableProjection reuses the same underlying row object each time an input row is added. This significantly reduces the cost of calculating the projection, but means that it is not safe to hold on to a reference to a InternalRow after next() has been called on the Iterator that produced it. Instead, the user must call InternalRow.copy() and hold on to the returned InternalRow before calling next().

  167. abstract class MutableRow extends InternalRow

    Permalink

    An extended interface to InternalRow that allows the values for each column to be updated.

    An extended interface to InternalRow that allows the values for each column to be updated. Setting a value through a primitive function implicitly marks that column as not null.

  168. final class MutableShort extends MutableValue

    Permalink
  169. abstract class MutableValue extends Serializable

    Permalink

    A parent class for mutable container objects that are reused when the values are changed, resulting in less garbage.

    A parent class for mutable container objects that are reused when the values are changed, resulting in less garbage. These values are held by a SpecificMutableRow.

    The following code was roughly used to generate these objects:

    val types = "Int,Float,Boolean,Double,Short,Long,Byte,Any".split(",")
    types.map {tpe =>
    s"""
    final class Mutable$tpe extends MutableValue {
      var value: $tpe = 0
      def boxed = if (isNull) null else value
      def update(v: Any) = value = {
        isNull = false
        v.asInstanceOf[$tpe]
      }
      def copy() = {
        val newCopy = new Mutable$tpe
        newCopy.isNull = isNull
        newCopy.value = value
        newCopy
      }
    }"""
    }.foreach(println)
    
    types.map { tpe =>
    s"""
      override def set$tpe(ordinal: Int, value: $tpe): Unit = {
        val currentValue = values(ordinal).asInstanceOf[Mutable$tpe]
        currentValue.isNull = false
        currentValue.value = value
      }
    
      override def get$tpe(i: Int): $tpe = {
        values(i).asInstanceOf[Mutable$tpe].value
      }"""
    }.foreach(println)
  170. case class NTile(buckets: Expression) extends RowNumberLike with SizeBasedWindowFunction with Product with Serializable

    Permalink

    The NTile function divides the rows for each window partition into 'n' buckets ranging from 1 to at most 'n'.

    The NTile function divides the rows for each window partition into 'n' buckets ranging from 1 to at most 'n'. Bucket values will differ by at most 1. If the number of rows in the partition does not divide evenly into the number of buckets, then the remainder values are distributed one per bucket, starting with the first bucket.

    The NTile function is particularly useful for the calculation of tertiles, quartiles, deciles and other common summary statistics

    The function calculates two variables during initialization: The size of a regular bucket, and the number of buckets that will have one extra row added to it (when the rows do not evenly fit into the number of buckets); both variables are based on the size of the current partition. During the calculation process the function keeps track of the current row number, the current bucket number, and the row number at which the bucket will change (bucketThreshold). When the current row number reaches bucket threshold, the bucket value is increased by one and the the threshold is increased by the bucket size (plus one extra if the current bucket is padded).

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    buckets

    number of buckets to divide the rows in. Default value is 1.

    Annotations
    @ExpressionDescription()
  171. case class NaNvl(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    An Expression evaluates to left iff it's not NaN, or evaluates to right otherwise.

    An Expression evaluates to left iff it's not NaN, or evaluates to right otherwise. This Expression is useful for mapping NaN values to null.

    Annotations
    @ExpressionDescription()
  172. trait NamedExpression extends Expression

    Permalink

    An Expression that is named.

  173. case class NextDay(startDate: Expression, dayOfWeek: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the first date which is later than startDate and named as dayOfWeek.

    Returns the first date which is later than startDate and named as dayOfWeek. For example, NextDay(2015-07-27, Sunday) would return 2015-08-02, which is the first Sunday later than 2015-07-27.

    Allowed "dayOfWeek" is defined in DateTimeUtils.getDayOfWeekFromString.

    Annotations
    @ExpressionDescription()
  174. trait NonSQLExpression extends Expression

    Permalink

    Expressions that don't have SQL representation should extend this trait.

    Expressions that don't have SQL representation should extend this trait. Examples are ScalaUDF, ScalaUDAF, and object expressions like MapObjects and Invoke.

  175. trait Nondeterministic extends Expression

    Permalink

    An expression that is nondeterministic.

  176. case class Not(child: Expression) extends UnaryExpression with Predicate with ImplicitCastInputTypes with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  177. case class NullIf(left: Expression, right: Expression) extends Expression with RuntimeReplaceable with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  178. trait NullIntolerant extends AnyRef

    Permalink

    When an expression inherits this, meaning the expression is null intolerant (i.e.

    When an expression inherits this, meaning the expression is null intolerant (i.e. any null input will result in null output). We will use this information during constructing IsNotNull constraints.

  179. case class Nvl(left: Expression, right: Expression) extends Expression with RuntimeReplaceable with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  180. case class Nvl2(expr1: Expression, expr2: Expression, expr3: Expression) extends Expression with RuntimeReplaceable with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  181. abstract class OffsetWindowFunction extends Expression with WindowFunction with Unevaluable with ImplicitCastInputTypes

    Permalink

    An offset window function is a window function that returns the value of the input column offset by a number of rows within the partition.

    An offset window function is a window function that returns the value of the input column offset by a number of rows within the partition. For instance: an OffsetWindowfunction for value x with offset -2, will get the value of x 2 rows back in the partition.

  182. case class Or(left: Expression, right: Expression) extends BinaryOperator with Predicate with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  183. case class OuterReference(e: NamedExpression) extends LeafExpression with Unevaluable with Product with Serializable

    Permalink

    A place holder used to hold a reference that has been resolved to a field outside of the current plan.

    A place holder used to hold a reference that has been resolved to a field outside of the current plan. This is used for correlated subqueries.

  184. case class PercentRank(children: Seq[Expression]) extends RankLike with SizeBasedWindowFunction with Product with Serializable

    Permalink

    The PercentRank function computes the percentage ranking of a value in a group of values.

    The PercentRank function computes the percentage ranking of a value in a group of values. The result the rank of the minus one divided by the total number of rows in the partition minus one: (r - 1) / (n - 1). If a partition only contains one row, the function will return 0.

    The PercentRank function is similar to the CumeDist function, but it uses rank values instead of row counts in the its numerator.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    children

    to base the rank on; a change in the value of one the children will trigger a change in rank. This is an internal parameter and will be assigned by the Analyser.

    Annotations
    @ExpressionDescription()
  185. case class Pi() extends LeafMathExpression with Product with Serializable

    Permalink

    Pi.

    Pi. Note that there is no code generation because this is only evaluated by the optimizer during constant folding.

    Annotations
    @ExpressionDescription()
  186. case class Pmod(left: Expression, right: Expression) extends BinaryArithmetic with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  187. case class Pow(left: Expression, right: Expression) extends BinaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  188. case class PreciseTimestamp(child: Expression) extends UnaryExpression with ExpectsInputTypes with Product with Serializable

    Permalink

    Expression used internally to convert the TimestampType to Long without losing precision, i.e.

    Expression used internally to convert the TimestampType to Long without losing precision, i.e. in microseconds. Used in time windowing.

  189. trait Predicate extends Expression

    Permalink

    An Expression that returns a boolean value.

  190. trait PredicateHelper extends AnyRef

    Permalink
  191. case class PredicateSubquery(query: LogicalPlan, children: Seq[Expression] = Seq.empty, nullAware: Boolean = false, exprId: ExprId = NamedExpression.newExprId) extends SubqueryExpression with Predicate with Unevaluable with Product with Serializable

    Permalink

    A predicate subquery checks the existence of a value in a sub-query.

    A predicate subquery checks the existence of a value in a sub-query. We currently only allow PredicateSubquery expressions within a Filter plan (i.e. WHERE or a HAVING clause). This will be rewritten into a left semi/anti join during analysis.

  192. case class PrettyAttribute(name: String, dataType: DataType = NullType) extends Attribute with Unevaluable with Product with Serializable

    Permalink

    A place holder used when printing expressions without debugging information such as the expression id or the unresolved indicator.

  193. case class PrintToStderr(child: Expression) extends UnaryExpression with Product with Serializable

    Permalink

    Print the result of an expression to stderr (used for debugging codegen).

  194. abstract class Projection extends (InternalRow) ⇒ InternalRow

    Permalink

    Converts a InternalRow to another Row given a sequence of expression that define each column of the new row.

    Converts a InternalRow to another Row given a sequence of expression that define each column of the new row. If the schema of the input row is specified, then the given expression will be bound to that schema.

  195. case class PromotePrecision(child: Expression) extends UnaryExpression with Product with Serializable

    Permalink

    An expression used to wrap the children when promote the precision of DecimalType to avoid promote multiple times.

  196. case class Quarter(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  197. abstract class RDG extends LeafExpression with Nondeterministic

    Permalink

    A Random distribution generating expression.

    A Random distribution generating expression. TODO: This can be made generic to generate any type of random distribution, or any type of StructType.

    Since this expression is stateful, it cannot be a case object.

  198. case class RLike(left: Expression, right: Expression) extends BinaryExpression with StringRegexExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  199. case class Rand(seed: Long) extends RDG with Product with Serializable

    Permalink

    Generate a random column with i.i.d.

    Generate a random column with i.i.d. uniformly distributed values in [0, 1).

    Annotations
    @ExpressionDescription()
  200. case class Randn(seed: Long) extends RDG with Product with Serializable

    Permalink

    Generate a random column with i.i.d.

    Generate a random column with i.i.d. gaussian random distribution.

    Annotations
    @ExpressionDescription()
  201. case class Rank(children: Seq[Expression]) extends RankLike with Product with Serializable

    Permalink

    The Rank function computes the rank of a value in a group of values.

    The Rank function computes the rank of a value in a group of values. The result is one plus the number of rows preceding or equal to the current row in the ordering of the partition. Tie values will produce gaps in the sequence.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    children

    to base the rank on; a change in the value of one the children will trigger a change in rank. This is an internal parameter and will be assigned by the Analyser.

    Annotations
    @ExpressionDescription()
  202. abstract class RankLike extends AggregateWindowFunction

    Permalink

    A RankLike function is a WindowFunction that changes its value based on a change in the value of the order of the window in which is processed.

    A RankLike function is a WindowFunction that changes its value based on a change in the value of the order of the window in which is processed. For instance, when the value of 'x' changes in a window ordered by 'x' the rank function also changes. The size of the change of the rank function is (typically) not dependent on the size of the change in 'x'.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

  203. case class ReferenceToExpressions(result: Expression, children: Seq[Expression]) extends Expression with Product with Serializable

    Permalink

    A special expression that evaluates BoundReferences by given expressions instead of the input row.

    A special expression that evaluates BoundReferences by given expressions instead of the input row.

    result

    The expression that contains BoundReference and produces the final output.

    children

    The expressions that used as input values for BoundReference.

  204. case class RegExpExtract(subject: Expression, regexp: Expression, idx: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Extract a specific(idx) group identified by a Java regex.

    Extract a specific(idx) group identified by a Java regex.

    NOTE: this expression is not THREAD-SAFE, as it has some internal mutable status.

    Annotations
    @ExpressionDescription()
  205. case class RegExpReplace(subject: Expression, regexp: Expression, rep: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Replace all substrings of str that match regexp with rep.

    Replace all substrings of str that match regexp with rep.

    NOTE: this expression is not THREAD-SAFE, as it has some internal mutable status.

    Annotations
    @ExpressionDescription()
  206. case class Remainder(left: Expression, right: Expression) extends BinaryArithmetic with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  207. case class Rint(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  208. case class Rollup(groupByExprs: Seq[Expression]) extends Expression with GroupingSet with Product with Serializable

    Permalink
  209. case class Round(child: Expression, scale: Expression) extends RoundBase with Serializable with ImplicitCastInputTypes with Product

    Permalink

    Round an expression to d decimal places using HALF_UP rounding mode.

    Round an expression to d decimal places using HALF_UP rounding mode. round(2.5) == 3.0, round(3.5) == 4.0.

    Annotations
    @ExpressionDescription()
  210. abstract class RoundBase extends BinaryExpression with Serializable with ImplicitCastInputTypes

    Permalink

    Round the child's result to scale decimal place when scale >= 0 or round at integral part when scale < 0.

    Round the child's result to scale decimal place when scale >= 0 or round at integral part when scale < 0.

    Child of IntegralType would round to itself when scale >= 0. Child of FractionalType whose value is NaN or Infinite would always round to itself.

    Round's dataType would always equal to child's dataType except for DecimalType, which would lead scale decrease from the origin DecimalType.

  211. case class RowNumber() extends RowNumberLike with Product with Serializable

    Permalink

    The RowNumber function computes a unique, sequential number to each row, starting with one, according to the ordering of rows within the window partition.

    The RowNumber function computes a unique, sequential number to each row, starting with one, according to the ordering of rows within the window partition.

    This documentation has been based upon similar documentation for the Hive and Presto projects.

    Annotations
    @ExpressionDescription()
  212. abstract class RowNumberLike extends AggregateWindowFunction

    Permalink
  213. trait RuntimeReplaceable extends Expression with Unevaluable

    Permalink

    An expression that gets replaced at runtime (currently by the optimizer) into a different expression for evaluation.

    An expression that gets replaced at runtime (currently by the optimizer) into a different expression for evaluation. This is mainly used to provide compatibility with other databases. For example, we use this to support "nvl" by replacing it with "coalesce".

  214. case class ScalaUDF(function: AnyRef, dataType: DataType, children: Seq[Expression], inputTypes: Seq[DataType] = Nil) extends Expression with ImplicitCastInputTypes with NonSQLExpression with Product with Serializable

    Permalink

    User-defined function.

    User-defined function.

    function

    The user defined scala function to run. Note that if you use primitive parameters, you are not able to check if it is null or not, and the UDF will return null for you if the primitive input is null. Use boxed type or Option if you wanna do the null-handling yourself.

    dataType

    Return type of function.

    children

    The input expressions of this UDF.

    inputTypes

    The expected input types of this UDF, used to perform type coercion. If we do not want to perform coercion, simply use "Nil". Note that it would've been better to use Option of Seq[DataType] so we can use "None" as the case for no type coercion. However, that would require more refactoring of the codebase.

  215. case class ScalarSubquery(query: LogicalPlan, children: Seq[Expression] = Seq.empty, exprId: ExprId = NamedExpression.newExprId) extends SubqueryExpression with Unevaluable with Product with Serializable

    Permalink

    A subquery that will return only one row and one column.

    A subquery that will return only one row and one column. This will be converted into a physical scalar subquery during planning.

    Note: exprId is used to have a unique name in explain string output.

  216. case class Second(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  217. case class Sha1(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that calculates a sha1 hash value and returns it as a hex string For input of type BinaryType or StringType

    A function that calculates a sha1 hash value and returns it as a hex string For input of type BinaryType or StringType

    Annotations
    @ExpressionDescription()
  218. case class Sha2(left: Expression, right: Expression) extends BinaryExpression with Serializable with ImplicitCastInputTypes with Product

    Permalink

    A function that calculates the SHA-2 family of functions (SHA-224, SHA-256, SHA-384, and SHA-512) and returns it as a hex string.

    A function that calculates the SHA-2 family of functions (SHA-224, SHA-256, SHA-384, and SHA-512) and returns it as a hex string. The first argument is the string or binary to be hashed. The second argument indicates the desired bit length of the result, which must have a value of 224, 256, 384, 512, or 0 (which is equivalent to 256). SHA-224 is supported starting from Java 8. If asking for an unsupported SHA function, the return value is NULL. If either argument is NULL or the hash length is not one of the permitted values, the return value is NULL.

    Annotations
    @ExpressionDescription()
  219. case class ShiftLeft(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Bitwise left shift.

    Bitwise left shift.

    left

    the base number to shift.

    right

    number of bits to left shift.

    Annotations
    @ExpressionDescription()
  220. case class ShiftRight(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Bitwise right shift.

    Bitwise right shift.

    left

    the base number to shift.

    right

    number of bits to right shift.

    Annotations
    @ExpressionDescription()
  221. case class ShiftRightUnsigned(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Bitwise unsigned right shift, for integer and long data type.

    Bitwise unsigned right shift, for integer and long data type.

    left

    the base number.

    right

    the number of bits to right shift.

    Annotations
    @ExpressionDescription()
  222. case class Signum(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  223. case class Sin(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  224. case class Sinh(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  225. case class Size(child: Expression) extends UnaryExpression with ExpectsInputTypes with Product with Serializable

    Permalink

    Given an array or map, returns its size.

    Given an array or map, returns its size.

    Annotations
    @ExpressionDescription()
  226. trait SizeBasedWindowFunction extends AggregateWindowFunction

    Permalink

    A SizeBasedWindowFunction needs the size of the current window for its calculation.

  227. case class SortArray(base: Expression, ascendingOrder: Expression) extends BinaryExpression with ExpectsInputTypes with CodegenFallback with Product with Serializable

    Permalink

    Sorts the input array in ascending / descending order according to the natural ordering of the array elements and returns it.

    Sorts the input array in ascending / descending order according to the natural ordering of the array elements and returns it.

    Annotations
    @ExpressionDescription()
  228. sealed abstract class SortDirection extends AnyRef

    Permalink
  229. case class SortOrder(child: Expression, direction: SortDirection) extends UnaryExpression with Unevaluable with Product with Serializable

    Permalink

    An expression that can be used to sort a tuple.

    An expression that can be used to sort a tuple. This class extends expression primarily so that transformations over expression will descend into its child.

  230. case class SortPrefix(child: SortOrder) extends UnaryExpression with Product with Serializable

    Permalink

    An expression to generate a 64-bit long prefix used in sorting.

  231. case class SoundEx(child: Expression) extends UnaryExpression with ExpectsInputTypes with Product with Serializable

    Permalink

    A function that return soundex code of the given string expression.

    A function that return soundex code of the given string expression.

    Annotations
    @ExpressionDescription()
  232. trait SpecializedGetters extends AnyRef

    Permalink
  233. final class SpecificMutableRow extends MutableRow with BaseGenericInternalRow

    Permalink

    A row type that holds an array specialized container objects, of type MutableValue, chosen based on the dataTypes of each column.

    A row type that holds an array specialized container objects, of type MutableValue, chosen based on the dataTypes of each column. The intent is to decrease garbage when modifying the values of primitive columns.

  234. case class SpecifiedWindowFrame(frameType: FrameType, frameStart: FrameBoundary, frameEnd: FrameBoundary) extends WindowFrame with Product with Serializable

    Permalink

    A specified Window Frame.

  235. case class Sqrt(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  236. case class StartsWith(left: Expression, right: Expression) extends BinaryExpression with StringPredicate with Product with Serializable

    Permalink

    A function that returns true if the string left starts with the string right.

  237. trait String2StringExpression extends Expression with ImplicitCastInputTypes

    Permalink
  238. case class StringInstr(str: Expression, substr: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that returns the position of the first occurrence of substr in the given string.

    A function that returns the position of the first occurrence of substr in the given string. Returns null if either of the arguments are null and returns 0 if substr could not be found in str.

    NOTE: that this is not zero based, but 1-based index. The first character in str has index 1.

    Annotations
    @ExpressionDescription()
  239. case class StringLPad(str: Expression, len: Expression, pad: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns str, left-padded with pad to a length of len.

    Returns str, left-padded with pad to a length of len.

    Annotations
    @ExpressionDescription()
  240. case class StringLocate(substr: Expression, str: Expression, start: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that returns the position of the first occurrence of substr in given string after position pos.

    A function that returns the position of the first occurrence of substr in given string after position pos.

    Annotations
    @ExpressionDescription()
  241. trait StringPredicate extends Expression with Predicate with ImplicitCastInputTypes

    Permalink

    A base trait for functions that compare two strings, returning a boolean.

  242. case class StringRPad(str: Expression, len: Expression, pad: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns str, right-padded with pad to a length of len.

    Returns str, right-padded with pad to a length of len.

    Annotations
    @ExpressionDescription()
  243. trait StringRegexExpression extends Expression with ImplicitCastInputTypes

    Permalink
  244. case class StringRepeat(str: Expression, times: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the string which repeat the given string value n times.

    Returns the string which repeat the given string value n times.

    Annotations
    @ExpressionDescription()
  245. case class StringReverse(child: Expression) extends UnaryExpression with String2StringExpression with Product with Serializable

    Permalink

    Returns the reversed given string.

    Returns the reversed given string.

    Annotations
    @ExpressionDescription()
  246. case class StringSpace(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns a n spaces string.

    Returns a n spaces string.

    Annotations
    @ExpressionDescription()
  247. case class StringSplit(str: Expression, pattern: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Splits str around pat (pattern is a regular expression).

    Splits str around pat (pattern is a regular expression).

    Annotations
    @ExpressionDescription()
  248. case class StringTranslate(srcExpr: Expression, matchingExpr: Expression, replaceExpr: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function translate any character in the srcExpr by a character in replaceExpr.

    A function translate any character in the srcExpr by a character in replaceExpr. The characters in replaceExpr is corresponding to the characters in matchingExpr. The translate will happen when any character in the string matching with the character in the matchingExpr.

    Annotations
    @ExpressionDescription()
  249. case class StringTrim(child: Expression) extends UnaryExpression with String2StringExpression with Product with Serializable

    Permalink

    A function that trim the spaces from both ends for the specified string.

    A function that trim the spaces from both ends for the specified string.

    Annotations
    @ExpressionDescription()
  250. case class StringTrimLeft(child: Expression) extends UnaryExpression with String2StringExpression with Product with Serializable

    Permalink

    A function that trim the spaces from left end for given string.

    A function that trim the spaces from left end for given string.

    Annotations
    @ExpressionDescription()
  251. case class StringTrimRight(child: Expression) extends UnaryExpression with String2StringExpression with Product with Serializable

    Permalink

    A function that trim the spaces from right end for given string.

    A function that trim the spaces from right end for given string.

    Annotations
    @ExpressionDescription()
  252. abstract class SubqueryExpression extends Expression

    Permalink

    An interface for subquery that is used in expressions.

  253. case class Substring(str: Expression, pos: Expression, len: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    A function that takes a substring of its first argument starting at a given position.

    A function that takes a substring of its first argument starting at a given position. Defined for String and Binary types.

    NOTE: that this is not zero based, but 1-based index. The first character in str has index 1.

    Annotations
    @ExpressionDescription()
  254. case class SubstringIndex(strExpr: Expression, delimExpr: Expression, countExpr: Expression) extends TernaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the substring from string str before count occurrences of the delimiter delim.

    Returns the substring from string str before count occurrences of the delimiter delim. If count is positive, everything the left of the final delimiter (counting from left) is returned. If count is negative, every to the right of the final delimiter (counting from the right) is returned. substring_index performs a case-sensitive match when searching for delim.

    Annotations
    @ExpressionDescription()
  255. case class Subtract(left: Expression, right: Expression) extends BinaryArithmetic with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  256. case class Tan(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  257. case class Tanh(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  258. abstract class TernaryExpression extends Expression

    Permalink

    An expression with three inputs and one output.

    An expression with three inputs and one output. The output is by default evaluated to null if any input is evaluated to null.

  259. case class TimeAdd(start: Expression, interval: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Adds an interval to timestamp.

  260. case class TimeSub(start: Expression, interval: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Subtracts an interval from timestamp.

  261. case class TimeWindow(timeColumn: Expression, windowDuration: Long, slideDuration: Long, startTime: Long) extends UnaryExpression with ImplicitCastInputTypes with Unevaluable with NonSQLExpression with Product with Serializable

    Permalink
  262. case class ToDate(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns the date part of a timestamp or string.

    Returns the date part of a timestamp or string.

    Annotations
    @ExpressionDescription()
  263. case class ToDegrees(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  264. case class ToRadians(child: Expression) extends UnaryMathExpression with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  265. case class ToUTCTimestamp(left: Expression, right: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Assumes given timestamp is in given timezone and converts to UTC.

    Assumes given timestamp is in given timezone and converts to UTC.

    Annotations
    @ExpressionDescription()
  266. case class ToUnixTimestamp(timeExp: Expression, format: Expression) extends UnixTime with Product with Serializable

    Permalink

    Converts time string with given pattern.

    Converts time string with given pattern. Deterministic version of UnixTimestamp, must have at least one parameter.

    Annotations
    @ExpressionDescription()
  267. case class TruncDate(date: Expression, format: Expression) extends BinaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Returns date truncated to the unit specified by the format.

    Returns date truncated to the unit specified by the format.

    Annotations
    @ExpressionDescription()
  268. case class UnBase64(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Converts the argument from a base 64 string to BINARY.

    Converts the argument from a base 64 string to BINARY.

    Annotations
    @ExpressionDescription()
  269. abstract class UnaryExpression extends Expression

    Permalink

    An expression with one input and one output.

    An expression with one input and one output. The output is by default evaluated to null if the input is evaluated to null.

  270. abstract class UnaryLogExpression extends UnaryMathExpression

    Permalink
  271. abstract class UnaryMathExpression extends UnaryExpression with Serializable with ImplicitCastInputTypes

    Permalink

    A unary expression specifically for math functions.

    A unary expression specifically for math functions. Math Functions expect a specific type of input format, therefore these functions extend ExpectsInputTypes.

  272. case class UnaryMinus(child: Expression) extends UnaryExpression with ExpectsInputTypes with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  273. case class UnaryPositive(child: Expression) extends UnaryExpression with ExpectsInputTypes with NullIntolerant with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  274. trait Unevaluable extends Expression

    Permalink

    An expression that cannot be evaluated.

    An expression that cannot be evaluated. Some expressions don't live past analysis or optimization time (e.g. Star). This trait is used by those expressions.

  275. case class Unhex(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink

    Performs the inverse operation of HEX.

    Performs the inverse operation of HEX. Resulting characters are returned as a byte array.

    Annotations
    @ExpressionDescription()
  276. abstract class UnixTime extends BinaryExpression with ExpectsInputTypes

    Permalink
  277. case class UnixTimestamp(timeExp: Expression, format: Expression) extends UnixTime with Product with Serializable

    Permalink

    Converts time string with given pattern.

    Converts time string with given pattern. (see [http://docs.oracle.com/javase/tutorial/i18n/format/simpleDateFormat.html]) to Unix time stamp (in seconds), returns null if fail. Note that hive Language Manual says it returns 0 if fail, but in fact it returns null. If the second parameter is missing, use "yyyy-MM-dd HH:mm:ss". If no parameters provided, the first parameter will be current_timestamp. If the first parameter is a Date or Timestamp instead of String, we will ignore the second parameter.

    Annotations
    @ExpressionDescription()
  278. case class UnresolvedWindowExpression(child: Expression, windowSpec: WindowSpecReference) extends UnaryExpression with Unevaluable with Product with Serializable

    Permalink
  279. final class UnsafeArrayData extends ArrayData

    Permalink
  280. final class UnsafeMapData extends MapData

    Permalink
  281. abstract class UnsafeProjection extends Projection

    Permalink

    A projection that returns UnsafeRow.

  282. final class UnsafeRow extends MutableRow with Externalizable with KryoSerializable

    Permalink
  283. case class UnscaledValue(child: Expression) extends UnaryExpression with Product with Serializable

    Permalink

    Return the unscaled Long value of a Decimal, assuming it fits in a Long.

    Return the unscaled Long value of a Decimal, assuming it fits in a Long. Note: this expression is internal and created only by the optimizer, we don't need to do type check for it.

  284. case class UpCast(child: Expression, dataType: DataType, walkedTypePath: Seq[String]) extends UnaryExpression with Unevaluable with Product with Serializable

    Permalink

    Cast the child expression to the target data type, but will throw error if the cast might truncate, e.g.

    Cast the child expression to the target data type, but will throw error if the cast might truncate, e.g. long -> int, timestamp -> data.

  285. case class Upper(child: Expression) extends UnaryExpression with String2StringExpression with Product with Serializable

    Permalink

    A function that converts the characters of a string to uppercase.

    A function that converts the characters of a string to uppercase.

    Annotations
    @ExpressionDescription()
  286. case class UserDefinedGenerator(elementSchema: StructType, function: (Row) ⇒ TraversableOnce[InternalRow], children: Seq[Expression]) extends Expression with Generator with CodegenFallback with Product with Serializable

    Permalink

    A generator that produces its output using the provided lambda function.

  287. case class ValueFollowing(value: Int) extends FrameBoundary with Product with Serializable

    Permalink

    <value> FOLLOWING boundary.

  288. case class ValuePreceding(value: Int) extends FrameBoundary with Product with Serializable

    Permalink

    <value> PRECEDING boundary.

  289. case class WeekOfYear(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()
  290. case class WindowExpression(windowFunction: Expression, windowSpec: WindowSpecDefinition) extends Expression with Unevaluable with Product with Serializable

    Permalink
  291. sealed trait WindowFrame extends AnyRef

    Permalink

    The trait used to represent the a Window Frame.

  292. trait WindowFunction extends Expression

    Permalink

    A window function is a function that can only be evaluated in the context of a window operator.

  293. sealed trait WindowSpec extends AnyRef

    Permalink

    The trait of the Window Specification (specified in the OVER clause or WINDOW clause) for Window Functions.

  294. case class WindowSpecDefinition(partitionSpec: Seq[Expression], orderSpec: Seq[SortOrder], frameSpecification: WindowFrame) extends Expression with WindowSpec with Unevaluable with Product with Serializable

    Permalink

    The specification for a window function.

    The specification for a window function.

    partitionSpec

    It defines the way that input rows are partitioned.

    orderSpec

    It defines the ordering of rows in a partition.

    frameSpecification

    It defines the window frame in a partition.

  295. case class WindowSpecReference(name: String) extends WindowSpec with Product with Serializable

    Permalink

    A Window specification reference that refers to the WindowSpecDefinition defined under the name name.

  296. final class XXH64 extends AnyRef

    Permalink
  297. case class XxHash64(children: Seq[Expression], seed: Long) extends HashExpression[Long] with Product with Serializable

    Permalink

    A xxHash64 64-bit hash expression.

  298. case class Year(child: Expression) extends UnaryExpression with ImplicitCastInputTypes with Product with Serializable

    Permalink
    Annotations
    @ExpressionDescription()

Value Members

  1. object Ascending extends SortDirection with Product with Serializable

    Permalink
  2. object AttributeMap extends Serializable

    Permalink

    Builds a map that is keyed by an Attribute's expression id.

    Builds a map that is keyed by an Attribute's expression id. Using the expression id allows values to be looked up even when the attributes used differ cosmetically (i.e., the capitalization of the name, or the expected nullability).

  3. object AttributeSet extends Serializable

    Permalink
  4. object BindReferences extends Logging

    Permalink
  5. object Canonicalize

    Permalink

    Rewrites an expression using rules that are guaranteed preserve the result while attempting to remove cosmetic variations.

    Rewrites an expression using rules that are guaranteed preserve the result while attempting to remove cosmetic variations. Deterministic expressions that are equal after canonicalization will always return the same answer given the same input (i.e. false positives should not be possible). However, it is possible that two canonical expressions that are not equal will in fact return the same answer given any input (i.e. false negatives are possible).

    The following rules are applied:

  6. object CaseKeyWhen

    Permalink

    Case statements of the form "CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END".

    Case statements of the form "CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END". When a = b, returns c; when a = d, returns e; else returns f.

  7. object CaseWhen extends Serializable

    Permalink

    Factory methods for CaseWhen.

  8. object Cast extends Serializable

    Permalink
  9. object CurrentRow extends FrameBoundary with Product with Serializable

    Permalink

    CURRENT ROW boundary.

  10. object DecimalLiteral

    Permalink

    Extractor for and other utility methods for decimal literals.

  11. object Descending extends SortDirection with Product with Serializable

    Permalink
  12. val EmptyRow: InternalRow

    Permalink

    Used as input into expressions whose output does not depend on any input value.

  13. object ExprId extends Serializable

    Permalink
  14. object ExpressionSet

    Permalink
  15. object ExtractValue

    Permalink
  16. object Factorial extends Serializable

    Permalink
  17. object FrameBoundary

    Permalink

    Extractor for making working with frame boundaries easier.

  18. object FromUnsafeProjection

    Permalink

    A projection that could turn UnsafeRow into GenericInternalRow

  19. object Hex extends Serializable

    Permalink
  20. object IntegerLiteral

    Permalink

    Extractor for retrieving Int literals.

  21. object InterpretedOrdering extends Serializable

    Permalink
  22. object InterpretedPredicate

    Permalink
  23. object Literal extends Serializable

    Permalink
  24. object Murmur3HashFunction extends InterpretedHashFunction

    Permalink
  25. object NamedExpression

    Permalink
  26. object NonNullLiteral

    Permalink

    An extractor that matches non-null literal values

  27. object PredicateSubquery extends Serializable

    Permalink
  28. object RangeFrame extends FrameType with Product with Serializable

    Permalink

    RangeFrame treats rows in a partition as groups of peers.

    RangeFrame treats rows in a partition as groups of peers. All rows having the same ORDER BY ordering are considered as peers. When a ValuePreceding or a ValueFollowing is used as its FrameBoundary, the value is considered as a logical offset. For example, assuming the value of the current row's ORDER BY expression expr is v, RANGE BETWEEN 1 PRECEDING AND 1 FOLLOWING represents a frame containing rows whose values expr are in the range of [v-1, v+1].

    If ORDER BY clause is not defined, all rows in the partition is considered as peers of the current row.

  29. object RowFrame extends FrameType with Product with Serializable

    Permalink

    RowFrame treats rows in a partition individually.

    RowFrame treats rows in a partition individually. When a ValuePreceding or a ValueFollowing is used as its FrameBoundary, the value is considered as a physical offset. For example, ROW BETWEEN 1 PRECEDING AND 1 FOLLOWING represents a 3-row frame, from the row precedes the current row to the row follows the current row.

  30. object RowOrdering

    Permalink
  31. object ScalarSubquery extends Serializable

    Permalink
  32. object SizeBasedWindowFunction extends Serializable

    Permalink
  33. object SpecifiedWindowFrame extends Serializable

    Permalink
  34. object StringTranslate extends Serializable

    Permalink
  35. object SubqueryExpression

    Permalink
  36. object TimeWindow extends Serializable

    Permalink
  37. object UnboundedFollowing extends FrameBoundary with Product with Serializable

    Permalink

    UNBOUNDED FOLLOWING boundary.

  38. object UnboundedPreceding extends FrameBoundary with Product with Serializable

    Permalink

    UNBOUNDED PRECEDING boundary.

  39. object UnsafeProjection

    Permalink
  40. object UnspecifiedFrame extends WindowFrame with Product with Serializable

    Permalink

    Used as a place holder when a frame specification is not defined.

  41. object VirtualColumn

    Permalink
  42. object XxHash64Function extends InterpretedHashFunction

    Permalink
  43. package aggregate

    Permalink
  44. package codegen

    Permalink

    A collection of generators that build custom bytecode at runtime for performing the evaluation of catalyst expression.

  45. package objects

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped