LAN_ANITA 2022-12-17 11:43 采纳率: 60%
浏览 27
已结题

hbase,java-api,列值查询

有人能指点一下,hbase中怎么用java-api来,查询一个表中符合两个列族中的两个列值的数据,比如:查询姓名是张三,并且地址是:上海的数据,我在网上找到的都是单列值查询,没有这种多列值的查询,我的代码时这样的:

img

img


啊,我找到方法了,运用综合过滤器就可以了

  • 写回答

2条回答 默认 最新

  • m0_57781768 2022-12-17 14:31
    关注

    要使用 Java API 查询 HBase 中的表并检索与两个列族中的两个列的值匹配的数据,您可以使用以下步骤:

    导入必要的 HBase 类:

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.HBaseConfiguration;
    import org.apache.hadoop.hbase.TableName;
    import org.apache.hadoop.hbase.client.Connection;
    import org.apache.hadoop.hbase.client.ConnectionFactory;
    import org.apache.hadoop.hbase.client.Get;
    import org.apache.hadoop.hbase.client.Result;
    import org.apache.hadoop.hbase.client.Table;
    

    创建一个 Configuration 对象并设置必要的参数,例如 HBase zookeeper quorum 和 HBase 客户端端口:

    Configuration config = HBaseConfiguration.create();
    config.set("hbase.zookeeper.quorum", "zookeeper1,zookeeper2,zookeeper3");
    config.set("hbase.zookeeper.property.clientPort", "2181");
    

    使用 Configuration 对象创建到 HBase 集群的连接:

    Connection connection = ConnectionFactory.createConnection(config);
    

    获取对要查询的表的引用:

    Table table = connection.getTable(TableName.valueOf("table_name"));
    

    创建一个 Get 对象并指定行键以及要检索的列族和列名:

    Get get = new Get("row_key");
    get.addColumn("family1", "column1");
    get.addColumn("family2", "column2");
    

    执行 Get 操作并检索 Result 对象:

    Result result = table.get(get);
    

    使用适当的 getXXX() 方法从 Result 对象中提取值,其中 XXX 是列值的数据类型。例如,要从列中检索字符串值,可以使用 getValue() 方法:

    byte[] value1 = result.getValue("family1", "column1");
    String value1Str = new String(value1);
    
    byte[] value2 = result.getValue("family2", "column2");
    String value2Str = new String(value2);
    

    完成后关闭表和连接对象:

    table.close();
    connection.close();
    

    这应该允许您使用 Java API 查询 HBase 中的表并检索与两个列族中的两个列的值匹配的数据。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月17日
  • 修改了问题 12月17日
  • 创建了问题 12月17日

悬赏问题

  • ¥15 Qt4代码实现下面的界面
  • ¥15 prism提示我reinstall prism 如何解决
  • ¥15 asp.core 权限控制怎么做,需要控制到每个方法
  • ¥20 while循环中OLED显示中断中的数据不正确
  • ¥15 这个视频里的stm32f4代码是怎么写的
  • ¥15 JNA调用DLL报堆栈溢出错误(0xC00000FD)
  • ¥15 请教SGeMs软件的使用
  • ¥15 自己用vb.net编写了一个dll文件,如何只给授权的用户使用这个dll文件进行打包编译,未授权用户不能进行打包编译操作?
  • ¥50 深度学习运行代码直接中断
  • ¥20 需要完整的共散射点成像代码