如何判断桌子是否另存为实木复合地板文件?

时间:2019-04-01 13:58:55

标签: hive parquet file-format hive-metastore

我正在使用HiveMetaStoreClient来获取配置单元表的一些元数据,并且我将一些表另存为实木复合地板,而将其他表另存为文本。对于另存为实木复合地板的表,我想获取更多信息,例如实木复合地板架构。

那么如何通过HiveMetaStoreClient获取配置单元表的文件格式?还是有其他接口可以做到这一点?

我在想也许我可以尝试使用ParquetReader读取每个表并捕获异常。喜欢:

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

但这就像最糟糕的选择。

2 个答案:

答案 0 :(得分:1)

您有多种选择。

  1. 使用SHOW CREATE TABLE <tablename>

  2. 使用DESCRIBE FORMATTED <tablename>

  3. 您可以使用色调为Hadoop用户提供Web GUI。

  4. 如果您还为UI设置了名称节点,则可以访问详细信息甚至浏览文件。网址通常为http://:50070。它没有显示有关该表的许多详细信息。它用于整体Hadoop。

答案 1 :(得分:0)

我通过在Hive会话中运行“ SHOW CREATE TABLE”来完成此操作,结果您将看到此表的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'

让我知道您是否正在寻找它!