Как я могу определить, сохраняется ли таблица в виде файлов паркета? - PullRequest
0 голосов
/ 01 апреля 2019

Я использую HiveMetaStoreClient для получения метаданных таблиц улья, и некоторые таблицы сохраняются в виде паркета, а другие таблицы сохраняются в виде текста. Для таблиц, сохраненных как паркет, я хочу получить дополнительную информацию, например, схему паркета.

Так как я могу получить формат файла таблицы кустов через HiveMetaStoreClient? Или есть ли другие интерфейсы для этого?

Я думаю, может быть, я смогу попробовать прочитать каждую таблицу с помощью ParquetReader и отловить исключения. Как:

try {
    metaData = ParquetFileReader.readFooter(conf, file, NO_FILTER);
    MessageType schema = metaData.getFileMetaData().getSchema();
} catch (Exception e) {
    System.out.println("Not parquet!!!")
}

Но это как худший выбор.

1 Ответ

0 голосов
/ 03 апреля 2019

Я делаю это, запустив «SHOW CREATE TABLE» в сеансе Hive, и в результате вы увидите оператор CREATE этой таблицы с подробными сведениями о формате файла.Это будет выглядеть примерно так:

ROW FORMAT SERDE 
      'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
      'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'

Дайте мне знать, если это то, что вы ищете!

...