如何判断表是否保存为Parquet文件?

anauzrmj  于 2021-06-27  发布在  Hive
关注(0)|答案(2)|浏览(569)

我正在使用hivemetastoreclient获取一些配置单元表的元数据,我将一些表保存为parquet,而其他表保存为文本。对于保存为parquet的表,我想获得更多类似parquet模式的信息。
那么如何通过hivemetastoreclient获取配置单元表的文件格式呢?或者是否有其他接口可以这样做?
我在想,也许我可以试着用Parquet板阅读每一张table,捕捉例外。比如:

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

但这是最糟糕的选择。

3ks5zfa0

3ks5zfa01#

你有多种选择。
使用 SHOW CREATE TABLE <tablename> 使用 DESCRIBE FORMATTED <tablename> 您可以使用hue,它为hadoop用户提供web gui。
如果还为ui设置了namenode,则可以访问详细信息,甚至可以浏览文件。url通常是http://:50070。它没有显示关于表的很多细节。它用于整个hadoop。

brqmpdu1

brqmpdu12#

我是通过在配置单元会话中运行“showcreatetable”来实现的,在结果中您将看到这个表的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'

让我知道如果那是你要找的!

相关问题