Hadoop 如何在动态hdfs目录上创建分区配置单元表

Hadoop 如何在动态hdfs目录上创建分区配置单元表,hadoop,hive,create-table,hive-partitions,hiveddl,Hadoop,Hive,Create Table,Hive Partitions,Hiveddl,我很难让配置单元发现在HDFS中创建的分区 以下是HDFS中的目录结构 warehouse/database/table_name/A warehouse/database/table_name/B warehouse/database/table_name/C warehouse/database/table_name/D A、 B、C、D为列类型 当我使用以下语法创建配置单元表时 CREATE EXTERNAL TABLE IF NOT EXISTS table_name(`name`

我很难让配置单元发现在HDFS中创建的分区

以下是HDFS中的目录结构

warehouse/database/table_name/A
warehouse/database/table_name/B
warehouse/database/table_name/C
warehouse/database/table_name/D
A、 B、C、D为列
类型

当我使用以下语法创建配置单元表时

CREATE EXTERNAL TABLE IF NOT EXISTS 
table_name(`name` string, `description` string) 
PARTITIONED BY (`type` string) 
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' 
LOCATION 'hdfs:///tmp/warehouse/database/table_name'
查询表时,我无法看到任何记录

但当我在HDFS中创建目录时,如下所示

warehouse/database/table_name/type=A
warehouse/database/table_name/type=B
warehouse/database/table_name/type=C
warehouse/database/table_name/type=D
当我使用
show partitions table\u name


配置单元中是否有一些配置能够将动态目录检测为分区?

在某些目录上创建外部表是不够的,还需要装入分区。Hive 4.0.0中添加的功能。用于早期版本:

MSCK [REPAIR] TABLE table_name [ADD/DROP/SYNC PARTITIONS];
或者在EMR上是等效的:

ALTER TABLE table_name RECOVER PARTITIONS;
当您使用
insert overwrite
创建动态分区时,分区元数据将自动创建,分区文件夹的格式为
key=value