我正在使用HiveMetaStoreClient来获取配置单元表的一些元数据,并且我将一些表另存为实木复合地板,而将其他表另存为文本。对于另存为实木复合地板的表,我想获取更多信息,例如实木复合地板架构。
那么如何通过HiveMetaStoreClient获取配置单元表的文件格式?还是有其他接口可以做到这一点?
我在想也许我可以尝试使用ParquetReader读取每个表并捕获异常。喜欢:
try {
metaData = ParquetFileReader.readFooter(conf, file, NO_FILTER);
MessageType schema = metaData.getFileMetaData().getSchema();
} catch (Exception e) {
System.out.println("Not parquet!!!")
}
但这就像最糟糕的选择。
答案 0 :(得分:1)
您有多种选择。
使用SHOW CREATE TABLE <tablename>
使用DESCRIBE FORMATTED <tablename>
您可以使用色调为Hadoop用户提供Web GUI。
如果您还为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'
让我知道您是否正在寻找它!