You need to call the following method of Delete which sets row before
calling table.delete():
public Delete(byte [] row) {
Cheers
On Thu, Mar 10, 2011 at 2:19 AM, Sindy <[email protected]> wrote:
> Hi,
> I want to delete one family in the java programe,
> Here is my code:
> -----------------------------
>
> Configuration conf=HBaseConfiguration.create();
> HBaseAdmin admin = new HBaseAdmin(conf);
>
> if (admin.tableExists(tableName)) {
>
> HTable table = new HTable(conf,tableName);
> Delete d=new Delete();
> admin.disableTable(tableName);
> d.deleteFamily(Bytes.toBytes(family));
> table.delete(d);
> admin.enableTable(tableName);
> System.out.println("delete family ok!");
> }
> System.out.println("no this table ok!");
> }
>
> -----------------------------
> But it shows the exception:
>
> Exception in thread "main" java.lang.IllegalArgumentException: Row is null
> at org.apache.hadoop.hbase.KeyValue.createByteArray(KeyValue.java:434)
> at org.apache.hadoop.hbase.KeyValue.<init>(KeyValue.java:399)
> at org.apache.hadoop.hbase.KeyValue.<init>(KeyValue.java:368)
> at org.apache.hadoop.hbase.KeyValue.<init>(KeyValue.java:347)
> at org.apache.hadoop.hbase.KeyValue.<init>(KeyValue.java:317)
> at org.apache.hadoop.hbase.client.Delete.deleteFamily(Delete.java:169)
> at org.apache.hadoop.hbase.client.Delete.deleteFamily(Delete.java:148)
> at DBOper.deleteOneFamily(DBOper.java:618)
> at MainClass.main(MainClass.java:41)
>
>
> Could you give me any advices? Thanks
>
> --
> Sindy
>