Java Code Examples for org.apache.flink.api.common.typeutils.TypeComparator#readWithKeyDenormalization()
The following examples show how to use
org.apache.flink.api.common.typeutils.TypeComparator#readWithKeyDenormalization() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: FixedLengthRecordSorter.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * Writes the records in this buffer in their logical order to the given output. * * @param output The output view to write the records to. * @throws IOException Thrown, if an I/O exception occurred writing to the output view. */ @Override public void writeToOutput(final ChannelWriterOutputView output) throws IOException { final TypeComparator<T> comparator = this.comparator; final TypeSerializer<T> serializer = this.serializer; T record = this.recordInstance; final SingleSegmentInputView inView = this.inView; final int recordsPerSegment = this.recordsPerSegment; int recordsLeft = this.numRecords; int currentMemSeg = 0; while (recordsLeft > 0) { final MemorySegment currentIndexSegment = this.sortBuffer.get(currentMemSeg++); inView.set(currentIndexSegment, 0); // check whether we have a full or partially full segment if (recordsLeft >= recordsPerSegment) { // full segment for (int numInMemSeg = 0; numInMemSeg < recordsPerSegment; numInMemSeg++) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } recordsLeft -= recordsPerSegment; } else { // partially filled segment for (; recordsLeft > 0; recordsLeft--) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } } } }
Example 2
Source File: FixedLengthRecordSorter.java From Flink-CEPplus with Apache License 2.0 | 5 votes |
/** * Writes a subset of the records in this buffer in their logical order to the given output. * * @param output The output view to write the records to. * @param start The logical start position of the subset. * @param num The number of elements to write. * @throws IOException Thrown, if an I/O exception occurred writing to the output view. */ @Override public void writeToOutput(final ChannelWriterOutputView output, final int start, int num) throws IOException { final TypeComparator<T> comparator = this.comparator; final TypeSerializer<T> serializer = this.serializer; T record = this.recordInstance; final SingleSegmentInputView inView = this.inView; final int recordsPerSegment = this.recordsPerSegment; int currentMemSeg = start / recordsPerSegment; int offset = (start % recordsPerSegment) * this.recordSize; while (num > 0) { final MemorySegment currentIndexSegment = this.sortBuffer.get(currentMemSeg++); inView.set(currentIndexSegment, offset); // check whether we have a full or partially full segment if (num >= recordsPerSegment && offset == 0) { // full segment for (int numInMemSeg = 0; numInMemSeg < recordsPerSegment; numInMemSeg++) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } num -= recordsPerSegment; } else { // partially filled segment for (; num > 0 && offset <= this.lastEntryOffset; num--, offset += this.recordSize) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } } offset = 0; } }
Example 3
Source File: FixedLengthRecordSorter.java From flink with Apache License 2.0 | 5 votes |
/** * Writes the records in this buffer in their logical order to the given output. * * @param output The output view to write the records to. * @throws IOException Thrown, if an I/O exception occurred writing to the output view. */ @Override public void writeToOutput(final ChannelWriterOutputView output) throws IOException { final TypeComparator<T> comparator = this.comparator; final TypeSerializer<T> serializer = this.serializer; T record = this.recordInstance; final SingleSegmentInputView inView = this.inView; final int recordsPerSegment = this.recordsPerSegment; int recordsLeft = this.numRecords; int currentMemSeg = 0; while (recordsLeft > 0) { final MemorySegment currentIndexSegment = this.sortBuffer.get(currentMemSeg++); inView.set(currentIndexSegment, 0); // check whether we have a full or partially full segment if (recordsLeft >= recordsPerSegment) { // full segment for (int numInMemSeg = 0; numInMemSeg < recordsPerSegment; numInMemSeg++) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } recordsLeft -= recordsPerSegment; } else { // partially filled segment for (; recordsLeft > 0; recordsLeft--) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } } } }
Example 4
Source File: FixedLengthRecordSorter.java From flink with Apache License 2.0 | 5 votes |
/** * Writes a subset of the records in this buffer in their logical order to the given output. * * @param output The output view to write the records to. * @param start The logical start position of the subset. * @param num The number of elements to write. * @throws IOException Thrown, if an I/O exception occurred writing to the output view. */ @Override public void writeToOutput(final ChannelWriterOutputView output, final int start, int num) throws IOException { final TypeComparator<T> comparator = this.comparator; final TypeSerializer<T> serializer = this.serializer; T record = this.recordInstance; final SingleSegmentInputView inView = this.inView; final int recordsPerSegment = this.recordsPerSegment; int currentMemSeg = start / recordsPerSegment; int offset = (start % recordsPerSegment) * this.recordSize; while (num > 0) { final MemorySegment currentIndexSegment = this.sortBuffer.get(currentMemSeg++); inView.set(currentIndexSegment, offset); // check whether we have a full or partially full segment if (num >= recordsPerSegment && offset == 0) { // full segment for (int numInMemSeg = 0; numInMemSeg < recordsPerSegment; numInMemSeg++) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } num -= recordsPerSegment; } else { // partially filled segment for (; num > 0 && offset <= this.lastEntryOffset; num--, offset += this.recordSize) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } } offset = 0; } }
Example 5
Source File: FixedLengthRecordSorter.java From flink with Apache License 2.0 | 5 votes |
/** * Writes the records in this buffer in their logical order to the given output. * * @param output The output view to write the records to. * @throws IOException Thrown, if an I/O exception occurred writing to the output view. */ @Override public void writeToOutput(final ChannelWriterOutputView output) throws IOException { final TypeComparator<T> comparator = this.comparator; final TypeSerializer<T> serializer = this.serializer; T record = this.recordInstance; final SingleSegmentInputView inView = this.inView; final int recordsPerSegment = this.recordsPerSegment; int recordsLeft = this.numRecords; int currentMemSeg = 0; while (recordsLeft > 0) { final MemorySegment currentIndexSegment = this.sortBuffer.get(currentMemSeg++); inView.set(currentIndexSegment, 0); // check whether we have a full or partially full segment if (recordsLeft >= recordsPerSegment) { // full segment for (int numInMemSeg = 0; numInMemSeg < recordsPerSegment; numInMemSeg++) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } recordsLeft -= recordsPerSegment; } else { // partially filled segment for (; recordsLeft > 0; recordsLeft--) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } } } }
Example 6
Source File: FixedLengthRecordSorter.java From flink with Apache License 2.0 | 5 votes |
/** * Writes a subset of the records in this buffer in their logical order to the given output. * * @param output The output view to write the records to. * @param start The logical start position of the subset. * @param num The number of elements to write. * @throws IOException Thrown, if an I/O exception occurred writing to the output view. */ @Override public void writeToOutput(final ChannelWriterOutputView output, final int start, int num) throws IOException { final TypeComparator<T> comparator = this.comparator; final TypeSerializer<T> serializer = this.serializer; T record = this.recordInstance; final SingleSegmentInputView inView = this.inView; final int recordsPerSegment = this.recordsPerSegment; int currentMemSeg = start / recordsPerSegment; int offset = (start % recordsPerSegment) * this.recordSize; while (num > 0) { final MemorySegment currentIndexSegment = this.sortBuffer.get(currentMemSeg++); inView.set(currentIndexSegment, offset); // check whether we have a full or partially full segment if (num >= recordsPerSegment && offset == 0) { // full segment for (int numInMemSeg = 0; numInMemSeg < recordsPerSegment; numInMemSeg++) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } num -= recordsPerSegment; } else { // partially filled segment for (; num > 0 && offset <= this.lastEntryOffset; num--, offset += this.recordSize) { record = comparator.readWithKeyDenormalization(record, inView); serializer.serialize(record, output); } } offset = 0; } }