Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hive 如何判断桌子是否保存为拼花文件?_Hive_Parquet_File Format_Hive Metastore - Fatal编程技术网

Hive 如何判断桌子是否保存为拼花文件?

Hive 如何判断桌子是否保存为拼花文件?,hive,parquet,file-format,hive-metastore,Hive,Parquet,File Format,Hive Metastore,我正在使用HiveMetaStoreClient获取hive表的一些元数据,我将一些表保存为拼花地板,而其他表保存为文本。对于保存为拼花的表,我想获得更多信息,如拼花模式 那么,如何通过HiveMetaStoreClient获取配置单元表的文件格式呢?或者是否有其他接口可以这样做 我在想也许我可以试着用ParquetReader阅读每张桌子,并捕捉例外情况。比如: try { metaData = ParquetFileReader.readFooter(conf, file, NO_F

我正在使用HiveMetaStoreClient获取hive表的一些元数据,我将一些表保存为拼花地板,而其他表保存为文本。对于保存为拼花的表,我想获得更多信息,如拼花模式

那么,如何通过HiveMetaStoreClient获取配置单元表的文件格式呢?或者是否有其他接口可以这样做

我在想也许我可以试着用ParquetReader阅读每张桌子,并捕捉例外情况。比如:

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

但这是最糟糕的选择。

我通过在配置单元会话中运行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'

让我知道,如果这是你要找的

您有多种选择

使用SHOW创建表

使用描述格式化

您可以使用为Hadoop用户提供web GUI的色调

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