Я использую scala для чтения числовых данных из столбцов Hbase, которые ранее заполнялись через Phoenix. Я могу прочитать значения столбца, но когда я преобразую их в строку, вместо действительных чисел у меня остаются байтовые значения, поэтому строка заполняется некоторыми непечатаемыми значениями.
Я предполагаю, что проблема в преобразовании, пока я сопоставляю RDD.
Вот код, который я использую для сопоставления моего СДР:
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result])
val stocksRdd = hBaseRDD.map {
case (key: ImmutableBytesWritable, value: Result) =>
(new String(value.getValue(Bytes.toBytes(indVarFamCol), Bytes.toBytes(indVar))),
new String(value.getValue(Bytes.toBytes(depVarFamCol), Bytes.toBytes(depVar))))
}
stocksRdd.take(10).foreach(println)
Мой фактический результат:
(,)
(,)
(,)
(,)
.....
Однако должно быть:
(5,5)
(23,55)
(12234)
(23,55)
.....
Запись в таблице hbase, которую я читаю, выглядит следующим образом:
\ x80 \ x00 \ x07x column = 0: YEARSOFEDU, отметка времени = 1555763290217, значение = \ x80 \ x00 \ x00 \ x10
Моя задача - прочитать значение и преобразовать его в строку, чтобы увидеть фактическое число.
Я относительно новичок в HBASE и scala, поэтому любые разъяснения будут высоко оценены.
Спасибо