【问题标题】:How can I tell if a table is saved as parquet files?如何判断表格是否保存为镶木地板文件?
【发布时间】:2019-04-01 13:58:55
【问题描述】:

我正在使用 HiveMetaStoreClient 获取 hive 表的一些元数据,并且我将一些表保存为镶木地板,而将其他表保存为文本。对于另存为 parquet 的表,我想获取更多信息,例如 parquet 架构。

那么如何通过 HiveMetaStoreClient 获取 hive 表的文件格式?或者是否有任何其他接口可以做到这一点?

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

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

但这似乎是最糟糕的选择。

【问题讨论】:

    标签: hive parquet file-format hive-metastore


    【解决方案1】:

    您有多种选择。

    1. 使用SHOW CREATE TABLE <tablename>

    2. 使用DESCRIBE FORMATTED <tablename>

    3. 您可以使用 hue,它为 Hadoop 用户提供 Web GUI。

    4. 如果您也为 UI 设置了 namenode,您可以访问详细信息甚至浏览文件。 url一般为http://:50070。它没有显示有关该表的很多详细信息。它用于整个hadoop。

    【讨论】:

      【解决方案2】:

      我通过在 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'
      

      如果这就是你要找的,请告诉我!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-18
        • 2014-11-25
        相关资源
        最近更新 更多