Class ApproximateDistinct.HyperLogLogPlusCoder
java.lang.Object
org.apache.beam.sdk.coders.Coder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
org.apache.beam.sdk.coders.CustomCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
org.apache.beam.sdk.extensions.sketching.ApproximateDistinct.HyperLogLogPlusCoder
- All Implemented Interfaces:
Serializable
- Enclosing class:
ApproximateDistinct
public static class ApproximateDistinct.HyperLogLogPlusCoder
extends CustomCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
Coder for
HyperLogLogPlus
class.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.beam.sdk.coders.Coder
Coder.Context, Coder.NonDeterministicException
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncom.clearspring.analytics.stream.cardinality.HyperLogLogPlus
decode
(InputStream inStream) Decodes a value of typeT
from the given input stream in the given context.void
encode
(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value, OutputStream outStream) Encodes the given value of typeT
onto the given output stream.protected long
getEncodedElementByteSize
(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value) Returns the size in bytes of the encoded value using this coder.boolean
isRegisterByteSizeObserverCheap
(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value) Returns whetherCoder.registerByteSizeObserver(T, org.apache.beam.sdk.util.common.ElementByteSizeObserver)
cheap enough to call for every element, that is, if thisCoder
can calculate the byte size of the element to be coded in roughly constant time (or lazily).of()
Methods inherited from class org.apache.beam.sdk.coders.CustomCoder
getCoderArguments, verifyDeterministic
Methods inherited from class org.apache.beam.sdk.coders.Coder
consistentWithEquals, decode, encode, getEncodedElementByteSizeUsingCoder, getEncodedTypeDescriptor, registerByteSizeObserver, structuralValue, verifyDeterministic, verifyDeterministic
-
Constructor Details
-
HyperLogLogPlusCoder
public HyperLogLogPlusCoder()
-
-
Method Details
-
of
-
encode
public void encode(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value, OutputStream outStream) throws IOException Description copied from class:Coder
Encodes the given value of typeT
onto the given output stream. Multiple elements can be encoded next to each other on the output stream, each coder should encode information to know how many bytes to read when decoding. A common approach is to prefix the encoding with the element's encoded length.- Specified by:
encode
in classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
- Throws:
IOException
- if writing to theOutputStream
fails for some reason
-
decode
public com.clearspring.analytics.stream.cardinality.HyperLogLogPlus decode(InputStream inStream) throws IOException Description copied from class:Coder
Decodes a value of typeT
from the given input stream in the given context. Returns the decoded value. Multiple elements can be encoded next to each other on the input stream, each coder should encode information to know how many bytes to read when decoding. A common approach is to prefix the encoding with the element's encoded length.- Specified by:
decode
in classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
- Throws:
IOException
- if reading from theInputStream
fails for some reason
-
isRegisterByteSizeObserverCheap
public boolean isRegisterByteSizeObserverCheap(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value) Description copied from class:Coder
Returns whetherCoder.registerByteSizeObserver(T, org.apache.beam.sdk.util.common.ElementByteSizeObserver)
cheap enough to call for every element, that is, if thisCoder
can calculate the byte size of the element to be coded in roughly constant time (or lazily).Not intended to be called by user code, but instead by
PipelineRunner
implementations.By default, returns false. The default
Coder.registerByteSizeObserver(T, org.apache.beam.sdk.util.common.ElementByteSizeObserver)
implementation invokesCoder.getEncodedElementByteSize(T)
which requires re-encoding an element unless it is overridden. This is considered expensive.- Overrides:
isRegisterByteSizeObserverCheap
in classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
-
getEncodedElementByteSize
protected long getEncodedElementByteSize(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value) throws IOException Description copied from class:Coder
Returns the size in bytes of the encoded value using this coder.- Overrides:
getEncodedElementByteSize
in classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
- Throws:
IOException
-