从scala代码填充值= \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00的Hbase表

时间:2017-06-02 09:57:00

标签: hbase

当我尝试通过scala程序将带有一列Double的Row键放入Hbase表时,我在输出文件(Hbase表)中看到这种32位表示。这完全阻止了我的工作。 / p>

请告知我们如何才能正确表达“Double' Double' Hbase表中的类型字段。

与此相关的代码如下:我在这里遗漏了什么吗?

VarValue_Output: Double
p(3).toDouble
final val colVarValueBytes = Bytes.toBytes("VarValue_Output")
put.add(cfDataBytes, colVarValueBytes, Bytes.toBytes(Data.VarValue_Output)

由于 Vijaya Kumar Pabothu

1 个答案:

答案 0 :(得分:0)

这是预期的行为。 你已经保存了Double数据类型,但是HBase shell(我假设你正在使用它)并不知道任何事情(HBase中的所有内容都表示为字节数组)。所以默认情况下它会尝试从你的字节数组中提取String,并且显然会显示一些unicode符号的无信息列表:

Bytes.toBytes("15.0")不等于Bytes.toBytes(15.0)

  1. 尝试将其保存为字符串,转换为字节数组(并且您将能够在基本shell中读取)
  2. 从您的应用程序中读取它,并确保您正在转换列值Bytes.toDouble