package ops
- Alphabetic
- Public
- Protected
Type Members
- class TimeTypeApiOps extends TypeApiOps
Client-side (spark-api) operations for TimeType.
Client-side (spark-api) operations for TimeType.
This class implements all TypeApiOps methods for the TIME data type:
- String formatting: uses FractionTimeFormatter for consistent output
- Row encoding: uses LocalTimeEncoder for java.time.LocalTime
- Arrow conversion (ArrowUtils)
- Python interop (EvaluatePython)
- Hive formatting (HiveResult)
- Thrift type mapping (SparkExecuteStatementOperation)
RELATIONSHIP TO TimeTypeOps: TimeTypeOps (in catalyst package) extends this class to inherit client-side operations while adding server-side operations (physical type, literals, etc.).
- Since
4.2.0
- trait TypeApiOps extends Serializable
Client-side (spark-api) type operations for the Types Framework.
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.
- Since
4.2.0
- See also
TimeTypeApiOps for reference implementation
Value Members
- object TypeApiOps extends Serializable
Factory object for creating TypeApiOps instances.
Factory object for creating TypeApiOps instances.
Returns Option to serve as both lookup and existence check - callers use getOrElse to fall through to legacy handling. The feature flag check is inside apply(), so callers don't need to check it separately.