trait Column extends AnyRef
An interface representing a column of a Table. It defines basic properties of a column,
such as name and data type, as well as some advanced ones like default column value.
Data Sources do not need to implement it. They should consume it in APIs like
Column[], Transform[], Map), and report it in
Table#columns() by calling the static create functions of this interface to
create it.
A column cannot have both a default value and a generation expression.
- Annotations
- @Evolving()
- Source
- Column.java
- Alphabetic
- By Inheritance
- Column
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def comment(): String
Returns the comment of this table column.
Returns the comment of this table column. Null means no comment.
- Annotations
- @Nullable()
- abstract def dataType(): DataType
Returns the data type of this table column.
- abstract def defaultValue(): ColumnDefaultValue
Returns the default value of this table column.
Returns the default value of this table column. Null means no default value.
- Annotations
- @Nullable()
- abstract def generationExpression(): String
Returns the generation expression of this table column.
Returns the generation expression of this table column. Null means no generation expression.
The generation expression is stored as spark SQL dialect. It is up to the data source to verify expression compatibility and reject writes as necessary.
- Annotations
- @Nullable()
- abstract def identityColumnSpec(): IdentityColumnSpec
Returns the identity column specification of this table column.
Returns the identity column specification of this table column. Null means no identity column.
- Annotations
- @Nullable()
- abstract def metadataInJSON(): String
Returns the column metadata in JSON format.
Returns the column metadata in JSON format.
- Annotations
- @Nullable()
- abstract def name(): String
Returns the name of this table column.
- abstract def nullable(): Boolean
Returns true if this column may produce null values.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def id(): String
Returns the ID of this top-level column, or null.
Returns the ID of this top-level column, or null. The ID is an opt-in identifier that the connector uses to track column identity beyond column name and type.
When a non-null ID is returned, the connector commits to the following contract:
- The ID is stable across renames (logical name changes preserve the ID).
- The ID changes when a top-level column is dropped and re-added, even with the same name and type.
- IDs are not reused within a table's history.
When null is returned, Spark skips identity validation for that column. Connectors should return null when:
- The catalog has no notion of column identity beyond name and type, OR
- The connector chooses to treat same-name drop+re-add as the same column (lenient semantics).
Returning null is per-column: a connector may return IDs for some columns and null for others.
This API covers top-level columns only. Nested struct fields, array elements, and map keys/values carry their own IDs in struct field metadata. Spark validates both top-level and nested struct field IDs as part of schema compatibility checks (array elements and map/key values' validation is not supported yet). See
StructField#id().- Annotations
- @Nullable()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)