我的目录结构如下。
- /data/year=/month=/day=/source1/abc.log
- /data/year=/month=/day=/source2/def.log
- /data/year=/month=/day=/source3/xyz.log
我想创建一个以年、月、日作为分区的配置单元表,但当我尝试执行 MSCK REPAIR TABLE 时它提示子文件夹“source1”。
建表语句
创建外部表示例(
col1 字符串,
col2 字符串
)
分区依据(年份字符串,月份字符串,日期字符串)
存储为兽人
位置“s3n://blah/data/”
TBLPROPERTIES ("orc.compress"="SNAPPY");
MSCK REPAIR TABLE 给出“意外的组件源 1”。知道如何在不移动文件的情况下创建外部表吗?谢谢你的帮助。
最佳答案
能否请您尝试设置以下属性
hive.msck.path.validation = skip (or) ignore
在 hive-site.xml 中,然后在您的表上执行“MSCK REPAIR TABLE”
(引用自 Hive Manual 在“Recover Partitions (MSCK REPAIR TABLE)”部分下)
关于hadoop - 在配置单元中分区后处理子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38886511/