abstract class BucketMetadata[K1, K2, V] extends Serializable with HasDisplayData
Represents metadata in a JSON-serializable format to be stored alongside sorted-bucket files in a
SortedBucketSink
transform, and read/checked for compatibility in a SortedBucketSource
transform.
Key encoding
BucketMetadata
controls over how values
are mapped to a key type
(see: `[[#extractKeyPrimary(Object)]]`) and
(see: `[[
#extractKeySecondary(Object)]]`), and how those bytes are encoded into byte[]
(see: `[[
#getKeyBytesPrimary(Object)]]`, `[[#getKeyBytesSecondary(Object)]]`). Therefore, in order for two
sources to be compatible in a `[[SortedBucketSource]]` transform, the `[[#keyClass]]` does
not have to be the same, as long as the final byte encoding is equivalent. A `[[
#coderOverrides()]]` method is provided for any encoding overrides: for example, in Avro sources
the `[[CharSequence]]` type should be encoded as a UTF-8 string.
- Annotations
- @JsonTypeInfo()
- Source
- BucketMetadata.java
- Alphabetic
- By Inheritance
- BucketMetadata
- HasDisplayData
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new BucketMetadata(version: Int, numBuckets: Int, numShards: Int, keyClass: Class[K1], keyClassSecondary: Class[K2], hashType: HashType, filenamePrefix: String)
- new BucketMetadata(version: Int, numBuckets: Int, numShards: Int, keyClass: Class[K1], keyClassSecondary: Class[K2], hashType: HashType)
- new BucketMetadata(version: Int, numBuckets: Int, numShards: Int, keyClass: Class[K1], hashType: HashType)
Abstract Value Members
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]) @native()
- def coderOverrides(): Map[Class[_ <: AnyRef], Coder[_ <: AnyRef]]
- Annotations
- @JsonIgnore()
- def compatibleMetadataTypes(): Set[Class[_ <: BucketMetadata]]
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getFilenamePrefix(): String
- def getHashType(): HashType
- def getKeyClass(): Class[K1]
- def getKeyClassSecondary(): Class[K2]
- def getKeyCoder(): Coder[K1]
- Annotations
- @JsonIgnore()
- def getKeyCoderSecondary(): Coder[K2]
- Annotations
- @JsonIgnore()
- def getNumBuckets(): Int
- def getNumShards(): Int
- def getVersion(): Int
- def hasSecondaryKey(): Boolean
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isPartitionCompatibleForPrimaryAndSecondaryKey(other: BucketMetadata): Boolean
- def isPartitionCompatibleForPrimaryKey(other: BucketMetadata): Boolean
- 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 populateDisplayData(builder: Builder): Unit
- Definition Classes
- BucketMetadata → HasDisplayData
- Annotations
- @Override()
- def primaryAndSecondaryComparableKeyBytes(value: V): ComparableKeyBytes
- def primaryComparableKeyBytes(value: V): ComparableKeyBytes
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- BucketMetadata → AnyRef → Any
- Annotations
- @Override()
- 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()