Я использую Hbase Помещенный API, чтобы написать длинный тип данных для Hbase используя код нижеHBase Java API, чтобы писать долго вместо шестнадцатеричных значений
p.add(Bytes.toBytes(this.hcol_fam_n), Bytes.toBytes(this.hcol_qual_n), Bytes.toBytes(this.newoffset));
При запуске команды сканирования на Hbase оболочки, значения отображается в шестнадцатеричном формате двоичного представления
value=\x00\x00\x00\x00\x00\x00\x00\x07
Но когда я использую положить заявление от Hbase оболочки, он показывает правильно, как «7». Почему это различие? И есть ли способ записать значение как есть без использования Bytes.toBytes для записи в Hbase, чтобы я мог правильно видеть значение из оболочки Hbase?
Если нет другого способа записать значение в читаемой форме в оболочке hbase, как вызвать java Bytes.toString
здесь для этого столбца в инструкции сканирования?
И когда я читаю то же значение, используя Hbase GET API, я не могу преобразовать значение из байтов в строку, используя Bytes.toString(value)
Это дает мне пустую строку. Но такое же значение преобразуется в Long с использованием Bytes.toLong(value)
Может кто-то, пожалуйста, помогите мне понять, почему это не конвертируется в строку, а в Long?
«Но когда я использую оператор put из оболочки Hbase, говоря это, что вы думаете? –