分享

如何在scan的时候显示中文

remarkzhao 发表于 2017-8-30 15:19:06 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 11 18974
各位大神,小弟有个问题了。

    这段是我的scala代码,导入hbase的  

      val p = new Put(Bytes.toBytes(y(0).toString))
p.add("Family".getBytes, "qualifier".getBytes, Bytes.toBytes(y(1).toString))
myTable.put(p)    rowkey是数字,qualifier这列值是中文,在hbase shell下scan出来都是16进制码,怎么样在scan下出中文。
多谢了!!!

已有(11)人评论

跳转到指定楼层
qcbb001 发表于 2017-8-30 17:34:24
使用HBase API时不要使用str.getBytes将String转化为byte[] ,而应该使用Bytes.toBytes(str);同样使用Bytes.toString(bytes);完成逆向转换。


回复

使用道具 举报

remarkzhao 发表于 2017-8-30 17:36:44
qcbb001 发表于 2017-8-30 17:34
使用HBase API时不要使用str.getBytes将String转化为byte[] ,而应该使用Bytes.toBytes(str);同样使用Byte ...

不太懂,能根据我的代码进行修改一下嘛?
回复

使用道具 举报

nextuser 发表于 2017-8-30 18:00:21
remarkzhao 发表于 2017-8-30 17:36
不太懂,能根据我的代码进行修改一下嘛?

插入应该没有问题,如何scan的
回复

使用道具 举报

remarkzhao 发表于 2017-8-30 18:01:45
nextuser 发表于 2017-8-30 18:00
插入应该没有问题,如何scan的

scan '表名' 啊。。。。
回复

使用道具 举报

fylanyu 发表于 2017-8-30 18:14:42
remarkzhao 发表于 2017-8-30 18:01
scan '表名' 啊。。。。

楼主采用的全表扫描的方式。
关键是编码,在put和显示的界面中,如果都是utf8,没有问题的。
回复

使用道具 举报

fylanyu 发表于 2017-8-30 18:28:26
本帖最后由 fylanyu 于 2017-8-30 18:32 编辑

p.add("Family".getBytes, "qualifier".getBytes, Bytes.toBytes(y(1).toString))
尝试更换这种方式
put.add(Bytes.toBytes(“Family”),Bytes.toBytes("qualifier", Bytes.toBytes(new String(y(1).toString.getBytes(),"UTF-8")));



回复

使用道具 举报

remarkzhao 发表于 2017-8-30 19:40:42
fylanyu 发表于 2017-8-30 18:28
p.add("Family".getBytes, "qualifier".getBytes, Bytes.toBytes(y(1).toString))
尝试更换这种方式
put. ...

试过了。。不太灵光。。不过还是谢谢帮忙,你给的意见很合理。
回复

使用道具 举报

remarkzhao 发表于 2017-8-31 11:45:20
fylanyu 发表于 2017-8-30 18:14
楼主采用的全表扫描的方式。
关键是编码,在put和显示的界面中,如果都是utf8,没有问题的。

额。。我用 get '表名','rowkey' 出来也是16进制码啊。
回复

使用道具 举报

remarkzhao 发表于 2017-8-31 13:52:06
我再顶顶,望有这方面的大神指点一下。。
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条