Мне нужно отбросить все существующие разделы таблицы улья.
Я попытался выполнить поиск, но все они, где Hive Queries.
мой шаблон разбиения (year="2018"/month="01")
Следовательно, пытаясь выразить выражениеyear>'0'
Пробовал исследовать apis "HiveMetaStoreClient" следующим образом:
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