HBASE编程实践

编程实现以下功能
createTable(String tableName, String[] fields)
创建表,参数tableName为表的名称,字符串数组fields为存储记录各个字段名称的数组。要求当HBase已经存在名为tableName的表的时候,先删除原有的表,然后再创建新的表。

addRecord(String tableName, String row, String[] fields, String[] values)
向表tableName、行row(用S_Name表示)和字符串数组fields指定的单元格中添加对应的数据values。其中,fields中每个元素如果对应的列族下还有相应的列限定符的话,用“columnFamily:column”表示。例如,同时向“Math”、“Computer
Science”、“English”三列添加成绩时,字符串数组fields为{“Score:Math”, ”Score:Computer Science”,
”Score:English”},数组values存储这三门课的成绩。

scanColumn(StringtableName, String column)
浏览表tableName某一列的数据,如果某一行记录中该列数据不存在,则返回null。要求当参数column为某一列族名称时,如果底下有若干个列限定符,则要列出每个列限定符代表的列的数据;当参数column为某一列具体名称(例如“Score:Math”)时,只需要列出该列的数据。

modifyData(String tableName, String row, String column)
修改表tableName,行row(可以用学生姓名S_Name表示),列column指定的单元格的数据。

deleteRow(String tableName,String row)
删除表tableName中row指定的行的记录。

public class hbaseexp {
   
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin; 
    public static void listName() throws IOException{
   
     init();
     HTableDescriptor[] tables = admin.listTables(); 
     for(HTableDescriptor s:tables){
   
      System.out.println(s.getNameAsString());
     }
     close();
    }
    public static void scanAll(String tableName) throws IOException{
   
     init();
     TableName table = TableName.valueOf(tableName);
     if(!admin.tableExists(table)){
   
      System.out.println("table is not exists");
     }else{
   
      Table t = connection.getTable(table);
      Scan scan = new Scan();
      ResultScanner rs = t.getScanner(scan);
      for(Result s :rs){
   
       for(Cell cell:s.rawCells()){
   
        System.out.print("row name:"+new String(CellUtil.cloneRow(cell)));
        System.out.print("column family :" +new String(CellUtil.cloneFamily(cell)));
        System.out.print("column :"+new String(CellUtil.cloneQualifier(cell)));
        System.out.print("value :"+new String(CellUtil.cloneValue(cell)));
        System.out.print("timestamp :"+cell.getTimestamp());
        System.out.println(
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值