about云开发

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 259|回复: 5

[异常错误] 注册免费送体验金平台

[复制链接]
回帖奖励 97 云币 回复本帖可获得 1 云币奖励! 每人限 1 次

5

主题

1

听众

1

收听

中级会员

Rank: 3Rank: 3

积分
387
发表于 2019-5-13 16:28:43 | 显示全部楼层 |阅读模式
写数据:
put.addColumn("ability".getBytes(), "ability".getBytes(), Bytes.toBytes(infos[1]));


读数据
Connection connection = HBaseConnectionUtil.getConnection();
Table table = connection.getTable(TableName.valueOf("jobs"));
ResultScanner scanner = table.getScanner(new Scan());
for(Result result:scanner){
    byte[] row = result.getRow();
    System.out.print("rowkey: "+new String(row));
    List<Cell> cells = result.listCells();
    for (Cell cell:cells){
        byte[] familyArray = cell.getFamilyArray();
        byte[] qualifierArray = cell.getQualifierArray();
        byte[] valueArray = cell.getValueArray();
        System.out.print(new String(familyArray,"utf-8")+" "+new String(qualifierArray,"utf-8")+" "+new String(valueArray));
    }
    System.out.println();
}


读出来的数据
rowkey: 000000000001   &    000000000001abilityability  j�B�JAVA/hadoop/spark/es    &    000000000001abilityability  j�B�JAVA/hadoop/spark/es    &    000000000001abilityability  j�B�JAVA/hadoop/spark/es

不知道为什么,utf-8、utf-8/UTF-8 都不行
写数据是从kafka 拉出来的,此时读到控制台也还正常
求解,感谢

504

主题

390

听众

217

收听

版主

Rank: 7Rank: 7Rank: 7

积分
5697
发表于 2019-5-13 16:44:32 | 显示全部楼层

回帖奖励 +1 云币

读出来是指读到什么地方。
如果控制台是正常的,说明控制台的编码是正确的。
在什么环境中读取,说明当前环境编码需要设置下。
如果在shell中,则设置下shell编码
欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

5

主题

1

听众

1

收听

中级会员

Rank: 3Rank: 3

积分
387
 楼主| 发表于 2019-5-13 16:48:11 | 显示全部楼层
hyj 发表于 2019-5-13 16:44
读出来是指读到什么地方。
如果控制台是正常的,说明控制台的编码是正确的。
在什么环境中读取,说明当前 ...

读取在 IDEA 的 控制台
发表于 2019-5-13 18:31:11 | 显示全部楼层

回帖奖励 +1 云币

o13674976542 发表于 2019-5-13 16:48
读取在 IDEA 的 控制台

通过hbase shell去看下插入里面的数据是否有乱码

5

主题

1

听众

1

收听

中级会员

Rank: 3Rank: 3

积分
387
 楼主| 发表于 2019-5-13 19:02:46 | 显示全部楼层
pig2 发表于 2019-5-13 18:31
通过hbase shell去看下插入里面的数据是否有乱码

不乱码,已解决,原因未知
乱码是因为直接使用Bytes.toString
解决方法是
Bytes.toString(CellUtil.cloneFamily(cell))
使用CellUtil  
感谢回复

23

主题

10

听众

3

收听

高级会员

Rank: 4

积分
2707
发表于 2019-5-14 09:30:35 | 显示全部楼层

回帖奖励 +1 云币

o13674976542 发表于 2019-5-13 19:02
不乱码,已解决,原因未知
乱码是因为直接使用Bytes.toString
解决方法是

使用Bytes.toString 应该就可以了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /3 下一条

QQ|小黑屋|about云开发-学问论坛|社区 ( 京ICP备12023829号

GMT+8, 2019-5-24 05:24 , Processed in 0.417075 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2 Licensed

快速回复 返回顶部 返回列表