Удалите все разделы таблицы улья, используя JAVA SDK - PullRequest
1 голос
/ 17 апреля 2019

Мне нужно отбросить все существующие разделы таблицы улья.

Я попытался выполнить поиск, но все они, где 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...