使用JAVA SDK删除配置单元表的所有分区

时间:2019-04-17 14:56:58

标签: java hadoop hive hive-metastore

我需要删除配置单元表的所有当前分区。

我尝试搜索,但所有搜索都在Hive查询中。

我的分区模式是(year="2018"/month="01") 因此尝试表达式year>'0'

尝试如下探索“ HiveMetaStoreClient” api:

  public void dropAllPartitions(String hiveDb, String hiveTable) throws MetaException, NoSuchObjectException, TException {

    HiveMetaStoreClient client = new HiveMetaStoreClient(new HiveConf());

    ObjectPair<Integer,byte[]> objectPair =  new ObjectPair<Integer, byte[]>();
    objectPair.setFirst(0);
    String expr = "year>'0'";
    objectPair.setSecond(expr.getBytes());

    List<ObjectPair<Integer,byte[]>> partExprs = new ArrayList<ObjectPair<Integer,byte[]>>();

    partExprs.add(objectPair);

    client.dropPartitions(hiveDb, hiveTable, partExprs, PartitionDropOptions.instance());
  }

但我收到此错误:

MetaException(message:Index: 119, Size: 0)

我怀疑objectPair.setFirst(0);可能是个问题。 进行更深入的调试后,我发现DropPartitionsExpr.setPartArchiveLevel(partExpr.getFirst())

正在使用它

但是找不到有关setPartArchiveLevel的任何文档

0 个答案:

没有答案