Sha256: 0397eeec4932e96181e2ef6dc4785ee3508add74b265b0ac8d7b85281b9a4cb5
Contents?: true
Size: 967 Bytes
Versions: 1
Compression:
Stored size: 967 Bytes
Contents
package org.embulk.filter.murmur2_partitioner; import org.apache.kafka.common.utils.Utils; import java.io.UnsupportedEncodingException; public class Murmur2Partitioner { static int partition(String key, int partitionCount) { try { return partition(key.getBytes("UTF8"), partitionCount); } catch (UnsupportedEncodingException e) { throw new RuntimeException("Cannot convert string to byte array"); } } static int partition(Long key, int partitionCount) { byte[] bytes = new byte[]{(byte)((int)(key >>> 56)), (byte)((int)(key >>> 48)), (byte)((int)(key >>> 40)), (byte)((int)(key >>> 32)), (byte)((int)(key >>> 24)), (byte)((int)(key >>> 16)), (byte)((int)(key >>> 8)), key.byteValue()}; return partition(bytes, partitionCount); } static int partition(byte[] bytes, int partitionCount) { return Utils.toPositive(Utils.murmur2(bytes)) % partitionCount; } }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
embulk-filter-murmur2_partitioner-0.1.0 | src/main/java/org/embulk/filter/murmur2_partitioner/Murmur2Partitioner.java |