// DeleteTable finds the HBase shell via the HBASE_HOME environment variable, // and disables and drops the given table func DeleteTable(client gohbase.AdminClient, table string) error { dit := hrpc.NewDisableTable(context.Background(), []byte(table)) err := client.DisableTable(dit) if err != nil { if !strings.Contains(err.Error(), "TableNotEnabledException") { return err } } det := hrpc.NewDeleteTable(context.Background(), []byte(table)) err = client.DeleteTable(det) if err != nil { return err } return nil }
// CreateTable creates the given table with the given families func CreateTable(client gohbase.AdminClient, table string, cFamilies []string) error { // If the table exists, delete it DeleteTable(client, table) // Don't check the error, since one will be returned if the table doesn't // exist cf := make(map[string]map[string]string, len(cFamilies)) for _, f := range cFamilies { cf[f] = nil } ct := hrpc.NewCreateTable(context.Background(), []byte(table), cf) if err := client.CreateTable(ct); err != nil { return err } return nil }