在看了书上API后我以为添加一个列族是这样的

public void addAFamily(String tableName,String familyName) throws IOException{
        init();
        Table table=connection.getTable(TableName.valueOf(tableName));
        HTableDescriptor hDescriptor= table.getTableDescriptor();
        HColumnDescriptor hColumnDescriptor=new HColumnDescriptor(familyName);
        hDescriptor.addFamily(hColumnDescriptor);
        close();

    }

然后我也没试它的效果我就直接拿来用了,结果是

看到这个错,很懵逼,我还以为是静态函数的问题,然后又去调那个函数,发现根本不对。然后去网上找了下addFamily的用法,发现了一些问题,解决办法请参考https://blog.csdn.net/lr131425/article/details/72621562

hbase里在已有表中添加一个列族

最后修改后代码:

public void addAFamily(String tableName,String familyName) throws IOException{
        init();
        TableName tablename=TableName.valueOf(tableName);
        admin.disableTable(tablename);
        HTableDescriptor hDescriptor= admin.getTableDescriptor(tablename);
        HColumnDescriptor hColumnDescriptor=new HColumnDescriptor(familyName);
        hDescriptor.addFamily(hColumnDescriptor);
        admin.modifyTable(tablename, hDescriptor);
        admin.enableTable(tablename);
        close();

    }

注:admin是定义在类开头的静态变量,不知道的请参考我这一章的代码https://blog.csdn.net/HYDMonster/article/details/80005045

hbase里在已有表中添加一个列族

相关文章:

  • 2021-05-25
  • 2021-07-07
  • 2021-12-31
  • 2022-12-23
  • 2022-01-04
  • 2021-12-12
  • 2022-01-05
猜你喜欢
  • 2022-12-23
  • 2021-11-30
  • 2021-11-18
  • 2021-11-18
  • 2021-08-18
  • 2021-11-18
  • 2021-11-30
相关资源
相似解决方案