Hadoop 如何在动态hdfs目录上创建分区配置单元表
我很难让配置单元发现在HDFS中创建的分区 以下是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`
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