我是HIVE环境的新手。
我正在尝试使用分区在配置单元中创建外部表。
我创建了一个外部表:
CREATE EXTERNAL TABLE test
(col1 INT, col2 BIGINT, col3 STRING, col4 STRING, col5 STRING, col6 STRING,
col7 BOOLEAN, col8 INT, col9 TIMESTAMP, col10 INT, col11 TIMESTAMP,
col12 STRING, col13 DOUBLE, col14 DOUBLE, col15 DOUBLE,
col16 DOUBLE,col17 BIGINT, col18 INT)
PARTITIONED BY (dataDate STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
tblproperties ("skip.header.line.count"="1");
表已成功创建。然后我添加第一个分区:
ALTER TABLE test ADD IF NOT EXISTS
PARTITION(dataDate='20171014')
LOCATION '/user/test/Partition_Trial';
然后将分区写入表中。
然后我尝试使用添加下一个分区
MSCK REPAIR TABLE test;
没有错误。
但是没有读取分区。
我期待MSCK功能能够读取其他分区。
我一直在阅读其他人的类似问题,但它似乎与此问题不相似。
感谢您的任何帮助。
您的test
表是在/user/test/
hdfs目录中创建的。
/user/test/
目录但not all sub directories recursively
。/user/test/Partition_Trial
目录下(在测试目录内),这就是msck repair table
无法找到新添加的分区的原因。解决此问题的选项:
ALTER TABLE test ADD IF NOT EXISTS
PARTITION
添加所有分区。
(or)
/user/test/Partition_Trial
(or)
/user/test
目录。