@Override public byte[] createBuf() { return new byte[this.getBytesLength()]; }
/** * Build the new key, return a new ByteArray object each time. Suitable for spark * @param parentCuboid * @param childCuboid * @param splitBuffers * @return */ public ByteArray buildKey2(Cuboid parentCuboid, Cuboid childCuboid, ByteArray[] splitBuffers) { RowKeyEncoder rowkeyEncoder = rowKeyEncoderProvider.getRowkeyEncoder(childCuboid); int fullKeySize = rowkeyEncoder.getBytesLength(); ByteArray newKey = new ByteArray(fullKeySize); buildKeyInternal(parentCuboid, childCuboid, splitBuffers, newKey); return newKey; }
@Override public byte[] encode(String[] values) { byte[] bytes = new byte[this.getBytesLength()]; int offset = getHeaderLength(); for (int i = 0; i < cuboid.getColumns().size(); i++) { TblColRef column = cuboid.getColumns().get(i); int colLength = colIO.getColumnLength(column); fillColumnValue(column, colLength, values[i], bytes, offset); offset += colLength; } //fill shard and cuboid fillHeader(bytes); return bytes; }
/** * Build the new key, return a reused ByteArray object. Suitable for MR * @param parentCuboid * @param childCuboid * @param splitBuffers * @return */ public Pair<Integer, ByteArray> buildKey(Cuboid parentCuboid, Cuboid childCuboid, ByteArray[] splitBuffers) { RowKeyEncoder rowkeyEncoder = rowKeyEncoderProvider.getRowkeyEncoder(childCuboid); int fullKeySize = rowkeyEncoder.getBytesLength(); if (newKeyBodyBuf == null || newKeyBodyBuf.length() < fullKeySize) { newKeyBodyBuf = new ByteArray(fullKeySize); } buildKeyInternal(parentCuboid, childCuboid, splitBuffers, newKeyBodyBuf); return new Pair<>(Integer.valueOf(fullKeySize), newKeyBodyBuf); }
private int buildKey(Cuboid cuboid, ByteArray[] splitBuffers) { RowKeyEncoder rowkeyEncoder = rowKeyEncoderProvider.getRowkeyEncoder(cuboid); int startIdx = rowKeySplitter.getBodySplitOffset(); // skip shard and cuboidId int endIdx = startIdx + Long.bitCount(cuboid.getId()); int offset = 0; for (int i = startIdx; i < endIdx; i++) { System.arraycopy(splitBuffers[i].array(), splitBuffers[i].offset(), newKeyBodyBuf, offset, splitBuffers[i].length()); offset += splitBuffers[i].length(); } int fullKeySize = rowkeyEncoder.getBytesLength(); while (newKeyBuf.array().length < fullKeySize) { newKeyBuf = new ByteArray(newKeyBuf.length() * 2); } newKeyBuf.setLength(fullKeySize); rowkeyEncoder.encode(new ByteArray(newKeyBodyBuf, 0, offset), newKeyBuf); return fullKeySize; }
int fullKeySize = rowkeyEncoder.getBytesLength(); while (newKeyBuf.array().length < fullKeySize) { newKeyBuf = new ByteArray(newKeyBuf.length() * 2);
@Override public byte[] createBuf() { return new byte[this.getBytesLength()]; }
/** * Build the new key, return a new ByteArray object each time. Suitable for spark * @param parentCuboid * @param childCuboid * @param splitBuffers * @return */ public ByteArray buildKey2(Cuboid parentCuboid, Cuboid childCuboid, ByteArray[] splitBuffers) { RowKeyEncoder rowkeyEncoder = rowKeyEncoderProvider.getRowkeyEncoder(childCuboid); int fullKeySize = rowkeyEncoder.getBytesLength(); ByteArray newKey = new ByteArray(fullKeySize); buildKeyInternal(parentCuboid, childCuboid, splitBuffers, newKey); return newKey; }
@Override public byte[] encode(String[] values) { byte[] bytes = new byte[this.getBytesLength()]; int offset = getHeaderLength(); for (int i = 0; i < cuboid.getColumns().size(); i++) { TblColRef column = cuboid.getColumns().get(i); int colLength = colIO.getColumnLength(column); fillColumnValue(column, colLength, values[i], bytes, offset); offset += colLength; } //fill shard and cuboid fillHeader(bytes); return bytes; }
/** * Build the new key, return a reused ByteArray object. Suitable for MR * @param parentCuboid * @param childCuboid * @param splitBuffers * @return */ public Pair<Integer, ByteArray> buildKey(Cuboid parentCuboid, Cuboid childCuboid, ByteArray[] splitBuffers) { RowKeyEncoder rowkeyEncoder = rowKeyEncoderProvider.getRowkeyEncoder(childCuboid); int fullKeySize = rowkeyEncoder.getBytesLength(); if (newKeyBodyBuf == null || newKeyBodyBuf.length() < fullKeySize) { newKeyBodyBuf = new ByteArray(fullKeySize); } buildKeyInternal(parentCuboid, childCuboid, splitBuffers, newKeyBodyBuf); return new Pair<>(Integer.valueOf(fullKeySize), newKeyBodyBuf); }
private int buildKey(Cuboid cuboid, ByteArray[] splitBuffers) { RowKeyEncoder rowkeyEncoder = rowKeyEncoderProvider.getRowkeyEncoder(cuboid); int startIdx = rowKeySplitter.getBodySplitOffset(); // skip shard and cuboidId int endIdx = startIdx + Long.bitCount(cuboid.getId()); int offset = 0; for (int i = startIdx; i < endIdx; i++) { System.arraycopy(splitBuffers[i].array(), splitBuffers[i].offset(), newKeyBodyBuf, offset, splitBuffers[i].length()); offset += splitBuffers[i].length(); } int fullKeySize = rowkeyEncoder.getBytesLength(); while (newKeyBuf.array().length < fullKeySize) { newKeyBuf = new ByteArray(newKeyBuf.length() * 2); } newKeyBuf.setLength(fullKeySize); rowkeyEncoder.encode(new ByteArray(newKeyBodyBuf, 0, offset), newKeyBuf); return fullKeySize; }
int fullKeySize = rowkeyEncoder.getBytesLength(); while (newKeyBuf.array().length < fullKeySize) { newKeyBuf = new ByteArray(newKeyBuf.length() * 2);