使用scala读取hbase值,转换问题
我使用scala从Hbase列中读取数字数据,这些列以前是通过Phoenix填充的。我可以读取列值,但当我将它们转换为字符串时,我仍然有字节值,因此字符串中填充了一些不可打印的值 在映射RDD时,我假设问题在转换中。 以下是我用来映射RDD的代码:使用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
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方面相对较新,因此任何澄清都将不胜感激
多谢各位