spark:打印hbase数据并将其转换为Dataframe

llmtgqce  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(441)

我很难处理从hbase表接收到的数据。我有一张hbase表 EMP_META: COLUMN_NAME,SALARY,DESIGNATION,BONUS 我用下面的代码来读:

def main(args: Array[String]): Unit = {
val sc = new SparkContext("local", "hbase-test")
println("Running Phoenix Context")
val conf = HBaseConfiguration.create()
conf.set(TableInputFormat.INPUT_TABLE, "EMP_META")
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], classOf[ImmutableBytesWritable], classOf[Result])
println("--------------: "+hBaseRDD.first())
}

但是,当我使用上面的print语句打印它时,我得到以下输出:

(65 6d 70 6c 6f 79 65 65,keyvalues={employee/0:COLUMN_NAME/1483975443911/Put/vlen=4/seqid=0, employee/0:DATA_TYPE/1483975443911/Put/vlen=7/seqid=0, employee/0:_0/1483975443911/Put/vlen=1/seqid=0})

而不是简单的数据文本行。我想把输出转换成一个Dataframe,这样我就可以轻松地处理数据了。有人能帮我一下吗。谢谢

6jygbczu

6jygbczu1#

如果要将hbaserdd转换为dataframe,可以使用以下代码:

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
  import sqlContext.implicits._
  hBaseRDD.toDF

如果要将结果转换为字符串,应将数组[byte]转换为字符串。hbase中存储的数据为数组[byte]。请尝试使用bytes.tostring(数据)进行转换。

相关问题