чтение значений в hbase с использованием scala, проблема с конвертацией - PullRequest
0 голосов
/ 03 мая 2019

Я использую 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, поэтому любые разъяснения будут высоко оценены.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...