Hbase外壳-如何写入字节值

Hbase外壳-如何写入字节值,hbase,Hbase,我想在hbase中写一个值,比如65。为此,我必须在hbase外壳上运行以下命令: put 'table','key','cf:qual','A' 但是有没有一种直接写的方法,比如: put 'table','key','cf:qual',65 (this is not allowed though) 如果你理解这个问题,请告诉我,否则我会详细解释 更新: 65我的意思是把‘A’直接放在‘A’的ascii值上。对我来说,真正的问题是我想从shell中输入128-255范围内的值。由于Hbas

我想在hbase中写一个值,比如65。为此,我必须在hbase外壳上运行以下命令:

put 'table','key','cf:qual','A'
但是有没有一种直接写的方法,比如:

put 'table','key','cf:qual',65 (this is not allowed though)
如果你理解这个问题,请告诉我,否则我会详细解释

更新:


65我的意思是把‘A’直接放在‘A’的ascii值上。对我来说,真正的问题是我想从shell中输入128-255范围内的值。

由于Hbase shell是使用ruby实现的,所以可以通过以十六进制格式表示字节值来插入字节值

例如,如果要插入字节值255:

255的十六进制表示为FF。 在Hbase shell中,我们应该将其命名为stringBinary,即“\xFF”

“\x”是一个特殊的转义字符,用于从十六进制编码任意字节,因此“\xFF”表示字节0xFF

因此
put'table'、'rowkey'、'cf:qual'、“\xFF”
将插入字节255

重要注意事项:该值必须在“”中(双引号)而不是“”中(单引号)

有用的链接:


您也可以使用像这样的Hbase内置函数

> put 'table','rowkey','cf:qua', Bytes.toBytes(1234)

这对我来说很有用。

不把“table”、“key”、“cf:qual”、“65”放在表中?。如果我理解正确的话。正确的存储INT的方法,但不用于长时间编码。那么如何将说\xFF转换成二进制呢?请参阅:。十六进制是4位长,所以FF将是1111111。谢谢。我提出这个问题后不久就明白了。