在hbase中有什么方法可以进行整数排序吗?

时间:2018-02-07 04:03:00

标签: hbase

据我所知,HBase仅支持字节数组用于写入目的。

有没有办法以整数排序顺序接收扫描结果,而不是字典顺序

例如

1

2

10

不是

1

10

2
有些人说我们可以存储像

00001

00002

00010

还有其他方法吗?

1 个答案:

答案 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;
  }

因此,您可以清楚地看到,您可以使用此实用程序类在保存之前转换密钥。获取时,它们将按整数值排序。 这实际上可以处理您在评论中提到的填充。