class SchemaTrackingLog[T <: PartitionAndDataSchema] extends HDFSMetadataLog[T]
The underlying class for a streaming log that keeps track of a sequence of schema changes.
It keeps tracks of the sequence of schema changes that this log is aware of, and it detects any concurrent modifications to the schema log to prevent accidents on a best effort basis.
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- SchemaTrackingLog
- HDFSMetadataLog
- Logging
- MetadataLog
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Instance Constructors
- new SchemaTrackingLog(sparkSession: SparkSession, path: String, schemaSerializer: SchemaSerializer[T])(implicit arg0: ClassTag[T], arg1: Manifest[T])
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
- def add(batchId: Long, metadata: T): Boolean
- Definition Classes
- HDFSMetadataLog → MetadataLog
- def addNewBatchByStream(batchId: Long)(fn: (OutputStream) => Unit): Boolean
- Definition Classes
- HDFSMetadataLog
- def addSchemaToLog(newSchema: T): T
Main API to actually write the log entry to the schema log.
Main API to actually write the log entry to the schema log. Clients can leverage this to save their new schema to the log.
- newSchema
New persisted schema
- Exceptions thrown
- def applyFnToBatchByStream[RET](batchId: Long, skipExistingCheck: Boolean)(fn: (InputStream) => RET): RET
- Definition Classes
- HDFSMetadataLog
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val batchCache: Map[Long, T]
- Attributes
- protected[sql]
- Definition Classes
- HDFSMetadataLog
- val batchFilesFilter: PathFilter
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog
- def batchIdToPath(batchId: Long): Path
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def deserialize(in: InputStream): T
Deserializes the log entry from input stream.
Deserializes the log entry from input stream.
- Attributes
- protected
- Definition Classes
- SchemaTrackingLog → HDFSMetadataLog
- Exceptions thrown
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- val fileManager: CheckpointFileManager
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- def get(startId: Option[Long], endId: Option[Long]): Array[(Long, T)]
- Definition Classes
- HDFSMetadataLog → MetadataLog
- def get(batchId: Long): Option[T]
- Definition Classes
- HDFSMetadataLog → MetadataLog
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getCurrentTrackedSchema: Option[T]
Get the latest tracked schema entry by this schema log
- def getCurrentTrackedSeqNum: Long
Get the latest tracked schema batch ID / seq num by this log
- def getLatest(): Option[(Long, T)]
- Definition Classes
- HDFSMetadataLog → MetadataLog
- def getLatestBatchId(): Option[Long]
- Definition Classes
- HDFSMetadataLog
- def getOrderedBatchFiles(): Array[FileStatus]
- Definition Classes
- HDFSMetadataLog
- def getPrevBatchFromStorage(batchId: Long): Option[Long]
- Definition Classes
- HDFSMetadataLog
- def getTrackedSchemaAtSeqNum(seqNum: Long): Option[T]
Get the tracked schema at specified seq num.
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
- Attributes
- protected
- Definition Classes
- Logging
- def initializeLogIfNecessary(isInterpreter: Boolean): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def isBatchFile(path: Path): Boolean
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
- def listBatches: Array[Long]
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog
- def listBatchesOnDisk: Array[Long]
- Definition Classes
- HDFSMetadataLog
- def log: Logger
- Attributes
- protected
- Definition Classes
- Logging
- def logDebug(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logDebug(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logError(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logError(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logInfo(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logInfo(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logName: String
- Attributes
- protected
- Definition Classes
- Logging
- def logTrace(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logTrace(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logWarning(msg: => String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
- def logWarning(msg: => String): Unit
- Attributes
- protected
- Definition Classes
- Logging
- val metadataCacheEnabled: Boolean
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog
- val metadataPath: Path
- Definition Classes
- HDFSMetadataLog
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def pathToBatchId(path: Path): Long
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog
- def purge(thresholdBatchId: Long): Unit
- Definition Classes
- HDFSMetadataLog → MetadataLog
- def purgeAfter(thresholdBatchId: Long): Unit
- Definition Classes
- HDFSMetadataLog
- def serialize(metadata: T, out: OutputStream): Unit
- Attributes
- protected
- Definition Classes
- SchemaTrackingLog → HDFSMetadataLog
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- 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()
- def write(batchMetadataFile: Path, fn: (OutputStream) => Unit): Unit
- Attributes
- protected
- Definition Classes
- HDFSMetadataLog