Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用scala读取hbase值,转换问题_Scala_Apache Spark_Hbase_Phoenix - Fatal编程技术网

使用scala读取hbase值,转换问题

使用scala读取hbase值,转换问题,scala,apache-spark,hbase,phoenix,Scala,Apache Spark,Hbase,Phoenix,我使用scala从Hbase列中读取数字数据,这些列以前是通过Phoenix填充的。我可以读取列值,但当我将它们转换为字符串时,我仍然有字节值,因此字符串中填充了一些不可打印的值 在映射RDD时,我假设问题在转换中。 以下是我用来映射RDD的代码: val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result]) val s

我使用scala从Hbase列中读取数字数据,这些列以前是通过Phoenix填充的。我可以读取列值,但当我将它们转换为字符串时,我仍然有字节值,因此字符串中填充了一些不可打印的值

在映射RDD时,我假设问题在转换中。 以下是我用来映射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) (12,234) (23,55)

我正在阅读的hbase表条目的外观如下所示:

\x80\x00\x07x列=0:YEARSOFEDU,时间戳=1555763290217,值=\x80\x00\x00\x10

我的任务是读取值并转换为字符串以查看实际数字

我在HBASE和scala方面相对较新,因此任何澄清都将不胜感激

多谢各位