请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

使用incrementColumnValue写入hbase后,查询出来的value是乱码

老师您好,使用incrementColumnValue写入hbase后,查询出来的value是乱码

正在回答 回答被采纳积分+3

1回答

Michael_PK 2023-06-11 23:15:38

hbase中的数据都是byte[]类型的,所以你查出来之后,你可以转成你想要的类型,比如字符串等。

另外你可以把你hbase看到的,以及你是如何查询的看到乱码,贴出来看下


0 回复 有任何疑惑可以回复我~
  • 提问者 慕沐6014767 #1
    写入hbase的代码:
    saveDS.foreachRDD(rdd=>{
          rdd.foreachPartition(partition=>{
            val table=ConnectionUtils.getHBaseTable("order_fee")
            partition.foreach(line=>{
              table.incrementColumnValue(  //hbase自增的功能
                  line._1.getBytes(),
                "info".getBytes(),
                "fee".getBytes(),
                line._2.toLong
              )
            })
            table.close()
          })
        })
    hbase shell查询的结果:
    202306091131                    column=info:fee, timestamp=1686281515200, value=\x00\x00\x00\x00\x00\x00\x04\xE2
     202306091132                    column=info:fee, timestamp=1686281540114, value=\x00\x00\x00\x00\x00\x00\x02\xEB
    回复 有任何疑惑可以回复我~ 2023-06-12 13:09:33
  • 提问者 慕沐6014767 #2
    查询hbase的代码:
     val configuration: Configuration = HBaseConfiguration.create()
        configuration.set("hbase.zookeeper.quorum","hadoop:2181")
        val connection: client.Connection = ConnectionFactory.createConnection(configuration)
        val table=connection.getTable(TableName.valueOf("order_fee"))
        val scanner: ResultScanner = table.getScanner(new Scan())
        val results: util.Iterator[Result] = scanner.iterator()
        while(results.hasNext){
          val result: Result = results.next()
          val cells: util.List[Cell] = result.listCells()
          cells.forEach(cell=>{
            val bytes: Array[Byte] = CellUtil.cloneValue(cell)
            val str = Bytes.toString(bytes)
            println(str)
          })
         /* val bytes: Array[Byte] = result.getValue("info".getBytes(),"fee".getBytes())
          val value: String = Bytes.toString(bytes)
          println(value)*/
        }
    查询结果显示:
     �
     �
    回复 有任何疑惑可以回复我~ 2023-06-12 13:10:37
  • Michael_PK 回复 提问者 慕沐6014767 #3
    课程qq群里找我,把你的这个测试代码和数据准备好,就一条数据就行,发我,我周末测试下。只要最精简能跑的代码抽取出来给我,不要全部整个工程给
    回复 有任何疑惑可以回复我~ 2023-07-07 01:30:57
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信