trait TypeApiOps extends Serializable
Client-side (spark-api) type operations for the Types Framework.
This trait consolidates all client-side operations that a data type must implement to be usable in the Spark SQL API layer. Mandatory methods (format, toSQLValue, getEncoder) must be implemented by every type. Optional methods (Arrow, Python, Hive, Thrift) return Option and default to None - types implement them as they expand their integration coverage.
RELATIONSHIP TO TypeOps:
- TypeOps (catalyst): Server-side operations - physical types, literals, conversions
- TypeApiOps (spark-api): Client-side operations - formatting, encoding
The split exists because sql/api cannot depend on sql/catalyst. For TimeType, TimeTypeOps (catalyst) extends TimeTypeApiOps (sql-api) to inherit both sets of operations.
- Source
- TypeApiOps.scala
- Since
4.2.0
- See also
TimeTypeApiOps for reference implementation
- Alphabetic
- By Inheritance
- TypeApiOps
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def dataType: DataType
The DataType this Ops instance handles.
- abstract def format(v: Any): String
Formats an internal value as a display string.
Formats an internal value as a display string.
Used by CAST to STRING, EXPLAIN output, SHOW commands.
- v
the internal value (e.g., Long nanoseconds for TimeType)
- returns
formatted string (e.g., "10:30:45.123456")
- abstract def getEncoder: AgnosticEncoder[_]
Returns the AgnosticEncoder for this type.
Returns the AgnosticEncoder for this type.
Used by RowEncoder for Dataset[T] operations.
- returns
AgnosticEncoder instance (e.g., LocalTimeEncoder for TimeType)
- abstract def toSQLValue(v: Any): String
Formats an internal value as a SQL literal string.
Formats an internal value as a SQL literal string.
- v
the internal value
- returns
SQL literal string (e.g., "TIME '10:30:00'")
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
- def formatExternal(value: Any, nested: Boolean): Option[String]
Formats with nesting context.
Formats with nesting context. Default delegates to the simple version.
- def formatExternal(value: Any): Option[String]
Formats an external-type value for Hive output.
Formats an external-type value for Hive output. Most types override this simple version. Types that need different formatting when nested should override the 2-param overload.
- def formatUTF8(v: Any): UTF8String
Formats an internal value as a UTF8String.
Formats an internal value as a UTF8String.
Default implementation wraps format(). Override for performance if needed.
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def makeFromJava: Option[(Any) => Any]
Creates a converter function for Python/Py4J interop.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def needConversionInPython: Option[Boolean]
Returns true if values of this type need conversion when passed to/from Python.
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def nullSafeConvert(input: Any)(f: PartialFunction[Any, Any]): Any
Null-safe conversion helper.
Null-safe conversion helper. Returns null for null input, applies the partial function for non-null input, and returns null for unmatched values.
- Attributes
- protected
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def thriftTypeName: Option[String]
Returns the Thrift TTypeId name for this type (e.g., "STRING_TYPE").
- def toArrowType(timeZoneId: String): Option[ArrowType]
Converts this DataType to its Arrow representation.
Converts this DataType to its Arrow representation. Returns None if not supported.
- 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)