hbase scan的java操作

2024-06-24 07:38
文章标签 java 操作 hbase scan

本文主要是介绍hbase scan的java操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

public class HbaseTest {public static void main(String[] args) throws Exception {//构建基本信息String table = "t_userBehavior2";final TableName tableName = TableName.valueOf(table);final HTable hTable = new HTable(tableName, HBaseUtil.getConnection());final Scan scan = new Scan();//查询出小于某个rk的全部数据System.out.println("小于等于DD4400000047344000007497818085B0的行");Filter filter1 = new RowFilter(CompareFilter.CompareOp.LESS_OR_EQUAL,new BinaryComparator("DD4400000047344000007497818085B0".getBytes()));scan.setFilter(filter1);ResultScanner scanner1 = hTable.getScanner(scan);for (Result res : scanner1) {System.out.println(res);}scanner1.close();System.out.println("--------------------------------------------------------------------");//正则匹配rkSystem.out.println("正则获取结尾为85B0的行");final RowFilter filter2 = new RowFilter(CompareFilter.CompareOp.EQUAL, new RegexStringComparator(".*85B0"));scan.setFilter(filter2);final ResultScanner scanner2 = hTable.getScanner(scan);for (Result res : scanner2) {System.out.println(res);}scanner2.close();System.out.println("--------------------------------------------------------------------");//rk包含某些字符串的所有行System.out.println("包含有DD4400000047的行");Filter filter3 = new RowFilter(CompareFilter.CompareOp.EQUAL,new SubstringComparator("DD4400000047"));scan.setFilter(filter3);ResultScanner scanner3 = hTable.getScanner(scan);for (Result res : scanner3) {System.out.println(res);}scanner3.close();System.out.println("--------------------------------------------------------------------");//判断rk的开头信息的所有行System.out.println("开头是DD4400的");Filter filter4 = new RowFilter(CompareFilter.CompareOp.EQUAL,new BinaryPrefixComparator("DD4400".getBytes()));scan.setFilter(filter4);ResultScanner scanner4 = hTable.getScanner(scan);for (Result res : scanner4) {System.out.println(res);}scanner3.close();System.out.println("----------------------------------------------------");/***RowFilter用于过滤row key,过滤的条件如下:Operator   DescriptionLESS   小于LESS_OR_EQUAL  小于等于EQUAL  等于NOT_EQUAL  不等于GREATER_OR_EQUAL   大于等于GREATER    大于NO_OP  排除所有Comparator Description比较器:BinaryComparator   使用Bytes.compareTo()比较BinaryPrefixComparator 和BinaryComparator差不多,从前面开始比较NullComparator Does not compare against an actual value but whether a given one is null, or not  null.BitComparator  Performs a bitwise comparison, providing a BitwiseOp class with OR, and XORoperators.RegexStringComparator  正则表达式SubstringComparator    把数据当成字符串,用contains()来判断*scan.setFilter(new PrefixFilter(rowPrifix.getBytes()));根据rk的前缀来进行过滤出所有的行*设定限制范围,查询出该范围内的所有行scan.setStartRow(getBytes(startRow));scan.setStopRow(getBytes(stopRow));*/scan.setStartRow(Bytes.toBytes("000000000"));//        scan.setStopRow(Bytes.toBytes("235959999"));
//        scan.setFilter(new PrefixFilter(rowPrifix.getBytes()));ResultScanner rs = hTable.getScanner(scan);for (Result r : rs) {KeyValue[] kv = r.raw();for (int i = 0; i < kv.length; i++) {final String rk = new String(kv[i].getRow());final Result resut = HBaseUtil.getRow(table, rk.getBytes());final List<Cell> cellList = resut.listCells();for (Cell cell : cellList) {final String value = new String(cell.getValue());System.out.println(value);}System.out.print(new String(kv[i].getRow()) + "  ");System.out.print(new String(kv[i].getFamily()) + ":");System.out.print(new String(kv[i].getQualifier()) + "  ");System.out.print(kv[i].getTimestamp() + "  ");System.out.println(new String(kv[i].getValue()));}}}}作者:会飞的蜗牛66666链接:https://www.jianshu.com/p/1da9fe1b2afe来源:简书简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 

这篇关于hbase scan的java操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1089533

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

java中long的一些常见用法

《java中long的一些常见用法》在Java中,long是一种基本数据类型,用于表示长整型数值,接下来通过本文给大家介绍java中long的一些常见用法,感兴趣的朋友一起看看吧... 在Java中,long是一种基本数据类型,用于表示长整型数值。它的取值范围比int更大,从-922337203685477

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

java Long 与long之间的转换流程

《javaLong与long之间的转换流程》Long类提供了一些方法,用于在long和其他数据类型(如String)之间进行转换,本文将详细介绍如何在Java中实现Long和long之间的转换,感... 目录概述流程步骤1:将long转换为Long对象步骤2:将Longhttp://www.cppcns.c

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过