特殊的HBase API用法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,小编给大家分享一下特殊的HBase API用法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!直接上代码:Connectio
千家信息网最后更新 2025年12月02日特殊的HBase API用法
小编给大家分享一下特殊的HBase API用法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
直接上代码:
Connection conn = ConnectionFactory.createConnection(conf);TableName tn = TableName.valueOf(strTN);Table table = conn.getTable(tn);RowFilter logFileTableFilter = new RowFilter(CompareFilter.CompareOp.EQUAL, new SubstringComparator("0UAV0020109000574633450"));Scan s = new Scan();s.setFilter(logFileTableFilter);ResultScanner ss = table.getScanner(s);for (Result r : ss) {for (Cell cell : r.listCells()) { KeyValue kv = (KeyValue) cell; System.out.print(new String(Arrays.copyOfRange(kv.getFamilyArray(), kv.getFamilyOffset(), kv.getFamilyOffset() + kv.getFamilyLength())) + " "); System.out.print(new String(Arrays.copyOfRange(kv.getQualifierArray(), kv.getQualifierOffset(), kv.getQualifierOffset() + kv.getQualifierLength())) + " "); System.out.println(new String(Arrays.copyOfRange(kv.getValueArray(), kv.getValueOffset(), kv.getValueOffset() + kv.getValueLength())) + " "); }}前面部分都很正常,2层循环,第一层是循环result,简单理解就是循环row,第二层循环每一个field。
请注意我标出来的部分,看起来很容易理解,分别是取列族、列、值。
可是事情的真相却不是这样的,看下面这个图:

好吧,我们再看一下源码:
public byte[] getFamilyArray() {return this.bytes;}public byte[] getQualifierArray() {return this.bytes;}public byte[] getValueArray() {return this.bytes;}这tmd不是一样的东西嘛?
好吧,奇葩就奇葩吧,关键是不好用,大概意思就是给你一个byte数组,关于这个field的所有数据都在这个数组里面,然后告诉你列族、列、值等等各种东西的offset和length,让你自己去把东西抠出来。每次取值要是都得这么做,那不得疯掉~~~
Arrays.copyOfRange(kv.getValueArray(), kv.getValueOffset(), kv.getValueOffset() + kv.getValueLength())
看看下面这段代码,还是有正常点的api的,这才符合人类习惯嘛~~~~~~
for (Result r : ss) { NavigableMap> maps = r.getNoVersionMap();for (byte[] fKey : maps.keySet()){ NavigableMap map = maps.get(fKey);for (byte[] key : map.keySet()){ System.out.print(new String(fKey) + ":"); System.out.print(new String(key) + " "); System.out.println(new String(map.get(key))); } }} 以上是"特殊的HBase API用法"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
循环
东西
篇文章
特殊
代码
内容
奇葩
就是
数组
部分
不好
不怎么
事情
二层
人类
关键
大部分
意思
数据
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数组分页 数据库查询分页
软件开发金额
小型服务器能不能让上网更快
mi 软件开发
ca数据库收录
迈尔斯通软件开发有限公司
app和网页共用数据库
做数据库
网络安全为人民宣传画小学图片
衡水专业软件开发服务商
服务器文件共享管理工具
网络安全与信息工作自查报告
测量设备管理与软件开发
网络安全教育橱窗
安邦数据库
新闻生活服务器类节目
湖北天门网络安全
联想510服务器
初中生主题教育网络安全
软件开发去哪些公司好
801网络安全就业实训
那美网络技术限公司招聘
米尺网络技术最新
网络服务器搭建 配置与管理
腾讯企业邮箱重拉服务器数据失败
店铺主账号挂在云端服务器
新闻生活服务器类节目
成都众信至诚软件开发
服务器缺钱
odac 连接数据库