据我所知,HBase仅支持字节数组用于写入目的。
有没有办法以整数排序顺序接收扫描结果,而不是字典顺序
例如
1
2
10
不是
1
10
2
有些人说我们可以存储像
00001
00002
00010
还有其他方法吗?
答案 0 :(得分:0)
来自org.apache.hadoop.hbase.util.Bytes:
/**
* Convert an int value to a byte array. Big-endian. Same as what DataOutputStream.writeInt
* does.
*
* @param val value
* @return the byte array
*/
public static byte[] toBytes(int val) {
byte [] b = new byte[4];
for(int i = 3; i > 0; i--) {
b[i] = (byte) val;
val >>>= 8;
}
b[0] = (byte) val;
return b;
}
因此,您可以清楚地看到,您可以使用此实用程序类在保存之前转换密钥。获取时,它们将按整数值排序。 这实际上可以处理您在评论中提到的填充。