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.HyperLogLogPlusdecode(InputStream inStream) Decodes a value of typeTfrom the given input stream in the given context.voidencode(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value, OutputStream outStream) Encodes the given value of typeTonto the given output stream.protected longgetEncodedElementByteSize(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value) Returns the size in bytes of the encoded value using this coder.booleanisRegisterByteSizeObserverCheap(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 thisCodercan 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, verifyDeterministicMethods 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:CoderEncodes the given value of typeTonto 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:
encodein classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>- Throws:
IOException- if writing to theOutputStreamfails for some reason
-
decode
public com.clearspring.analytics.stream.cardinality.HyperLogLogPlus decode(InputStream inStream) throws IOException Description copied from class:CoderDecodes a value of typeTfrom 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:
decodein classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>- Throws:
IOException- if reading from theInputStreamfails for some reason
-
isRegisterByteSizeObserverCheap
public boolean isRegisterByteSizeObserverCheap(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value) Description copied from class:CoderReturns whetherCoder.registerByteSizeObserver(T, org.apache.beam.sdk.util.common.ElementByteSizeObserver)cheap enough to call for every element, that is, if thisCodercan 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
PipelineRunnerimplementations.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:
isRegisterByteSizeObserverCheapin classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>
-
getEncodedElementByteSize
protected long getEncodedElementByteSize(com.clearspring.analytics.stream.cardinality.HyperLogLogPlus value) throws IOException Description copied from class:CoderReturns the size in bytes of the encoded value using this coder.- Overrides:
getEncodedElementByteSizein classCoder<com.clearspring.analytics.stream.cardinality.HyperLogLogPlus>- Throws:
IOException
-