Column

org.apache.spark.sql.Column
See theColumn companion object
class Column

A column in a Dataset: a lazily-evaluated reference to a column or a computation over columns. Columns are immutable; operators and methods return new Columns.

Build columns with functions.col, functions.lit, by indexing a DataFrame (df("id")), or by combining other columns with operators.

 import org.apache.spark.sql.functions._
 (col("age") + 1).as("next_age")
 col("name").like("a%") && (col("age") >= 18)

The operators mirror org.apache.spark.sql.Column and build the same Spark Connect expressions as the Apache Spark Scala client.

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class ColumnName
class TypedColumn[T, U]

Members list

Value members

Constructors

def this(expr: Expression)

Wraps an existing protobuf expression.

Wraps an existing protobuf expression.

Attributes

def this(name: String)

A column reference by (possibly dotted) name; "*" expands to all columns.

A column reference by (possibly dotted) name; "*" expands to all columns.

Attributes

Concrete methods

def %(other: Any): Column
def &&(other: Any): Column
def *(other: Any): Column
def +(other: Any): Column
def -(other: Any): Column
def /(other: Any): Column
def <(other: Any): Column
def <=(other: Any): Column
def <=>(other: Any): Column
def =!=(other: Any): Column
def ===(other: Any): Column
def >(other: Any): Column
def >=(other: Any): Column
def alias(alias: String): Column
def and(other: Column): Column
def apply(extraction: Any): Column

Extract an array element by index, a map value by key, or a struct field.

Extract an array element by index, a map value by key, or a struct field.

Attributes

def as(alias: String): Column
def as(aliases: Seq[String]): Column
def as(aliases: Array[String]): Column
def as(alias: Symbol): Column
def as(alias: String, metadata: Metadata): Column
def as[U](using enc: Encoder[U]): TypedColumn[Any, U]

Gives this column an Encoder, producing a TypedColumn usable with the typed Dataset.select overloads.

Gives this column an Encoder, producing a TypedColumn usable with the typed Dataset.select overloads.

Attributes

def asc: Column
def between(lowerBound: Any, upperBound: Any): Column

True if lowerBound <= this <= upperBound.

True if lowerBound <= this <= upperBound.

Attributes

def bitwiseAND(other: Any): Column
def bitwiseOR(other: Any): Column
def bitwiseXOR(other: Any): Column
def cast(to: DataType): Column
def cast(to: String): Column
def contains(other: Any): Column
def desc: Column
def divide(other: Any): Column
def dropFields(fieldNames: String*): Column

Drops fields of a struct column by name; a no-op for fields that do not exist.

Drops fields of a struct column by name; a no-op for fields that do not exist.

Attributes

def endsWith(other: Column): Column
def endsWith(literal: String): Column
def eqNullSafe(other: Any): Column
def equalTo(other: Any): Column
override def equals(obj: Any): Boolean

Compares the receiver object (this) with the argument object (that) for equivalence.

Compares the receiver object (this) with the argument object (that) for equivalence.

Any implementation of this method should be an equivalence relation:

  • It is reflexive: for any instance x of type Any, x.equals(x) should return true.
  • It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.

If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is usually necessary to override hashCode to ensure that objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int. (o1.hashCode.equals(o2.hashCode)).

Value parameters

that

the object to compare against this object for equality.

Attributes

Returns

true if the receiver object is equivalent to the argument; false otherwise.

Definition Classes
Any
def explain(extended: Boolean): Unit

Prints the expression to the console: the SQL-like form, or the full protobuf if extended.

Prints the expression to the console: the SQL-like form, or the full protobuf if extended.

Attributes

def geq(other: Any): Column
def getField(fieldName: String): Column
def getItem(key: Any): Column
def gt(other: Any): Column
override def hashCode(): Int

Calculates a hash code value for the object.

Calculates a hash code value for the object.

The default hashing algorithm is platform dependent.

Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.

Attributes

Returns

the hash code value for this object.

Definition Classes
Any
def ilike(literal: String): Column
def isInCollection(values: Iterable[_]): Column

True if the column's value is in the given collection.

True if the column's value is in the given collection.

Attributes

def isInCollection(values: Iterable[_]): Column

(Java-specific) True if the column's value is in the given collection.

(Java-specific) True if the column's value is in the given collection.

Attributes

def isNaN: Column
def isNull: Column
def isin(list: Any*): Column

True if the column's value is in the given list.

True if the column's value is in the given list.

Attributes

def isin(ds: Dataset[_]): Column

True if the column's value is in the result of the single-column (or, for a struct(...) column, multi-column) subquery ds. Builds an IN (subquery) expression, which needs a Spark 4.1+ server.

True if the column's value is in the result of the single-column (or, for a struct(...) column, multi-column) subquery ds. Builds an IN (subquery) expression, which needs a Spark 4.1+ server.

Attributes

def leq(other: Any): Column
def like(literal: String): Column
def lt(other: Any): Column
def minus(other: Any): Column
def mod(other: Any): Column
def multiply(other: Any): Column
def name(alias: String): Column
def notEqual(other: Any): Column
def or(other: Column): Column
def otherwise(value: Any): Column

Provides the default (ELSE) value for a CASE expression.

Provides the default (ELSE) value for a CASE expression.

Attributes

def outer(): Column

Marks this column as an outer reference for a correlated subquery or a lateral join's correlated right side. Spark Connect resolves outer references on the server, so (as in the Apache Spark Connect client) this does not change the expression sent to the server.

Marks this column as an outer reference for a correlated subquery or a lateral join's correlated right side. Spark Connect resolves outer references on the server, so (as in the Apache Spark Connect client) this does not change the expression sent to the server.

Attributes

def over(window: WindowSpec): Column
def over(): Column
def plus(other: Any): Column
def rlike(literal: String): Column
def startsWith(other: Column): Column
def startsWith(literal: String): Column
def substr(startPos: Column, len: Column): Column
def substr(startPos: Int, len: Int): Column
override def toString: String

A SQL-like rendering of this column, e.g. (a + 1) AS b.

A SQL-like rendering of this column, e.g. (a + 1) AS b.

Attributes

Definition Classes
Any

Applies f to this column, for chaining custom transformations.

Applies f to this column, for chaining custom transformations.

Attributes

Casts to to, returning null instead of failing when the cast is not possible.

Casts to to, returning null instead of failing when the cast is not possible.

Attributes

def try_cast(to: String): Column

Casts to the type given as a SQL string, returning null when not possible.

Casts to the type given as a SQL string, returning null when not possible.

Attributes

def when(condition: Column, value: Any): Column

Adds a branch to a CASE expression started by functions.when.

Adds a branch to a CASE expression started by functions.when.

Attributes

def withField(fieldName: String, col: Column): Column

Adds or replaces a field in a struct column by name.

Adds or replaces a field in a struct column by name.

Attributes

def ||(other: Any): Column

Deprecated methods

def !==(other: Any): Column

Attributes

Deprecated
true